Verbessern der Abfrageleistung mit Adaptive Join - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verbessern der Abfrageleistung mit Adaptive Join

Übersicht

Adaptive Join ist eine Vorschaufunktion in Aurora PostgreSQL 17.4, die zur Verbesserung der Abfrageleistung beiträgt. Diese Funktion ist standardmäßig deaktiviert, Sie können sie jedoch mithilfe von GUC-Parametern (Global User Configuration) aktivieren. Da es sich um eine Vorschaufunktion handelt, können sich die Standardparameterwerte ändern. Wenn diese Option aktiviert ist, trägt Adaptive Join zur Optimierung der Abfrageleistung bei, indem zur Laufzeit dynamisch von einem Nested-Loop-Join zu einem Hash-Join gewechselt wird. Dieser Wechsel erfolgt, wenn der PostgreSQL-Optimierer aufgrund ungenauer Kardinalitätsschätzungen fälschlicherweise einen Nested-Loop-Join ausgewählt hat.

Konfigurieren von Adaptive Join

Sie können Adaptive Join über diese drei GUC-Parameter steuern:

Konfigurationsparameter für Adaptive Join
GUC-Parameter Beschreibung Standard-Konfigurationsoptionen
apg_adaptive_join_crossover_multiplier Dieser Multiplikator bestimmt zusammen mit dem Zeilenknotenpunkt, wann von einem verschachtelten Loop zu einem Hash-Join gewechselt werden soll. Am Zeilenübergangspunkt schätzt der SQL-Optimierer, dass Vorgänge für verschachtelte Schleifen und Hash-Joins dieselben Kosten verursachen. Ein höherer Multiplikatorwert verringert die Wahrscheinlichkeit, dass Adaptive Join zu einem Hash-Join wechselt.

Steuert, ob Adaptive Join aktiviert ist

  • Standardwert: -1 (deaktiviert)

  • Gültiger Bereich: -1 bis DBL_MAX

  • Zum Aktivieren: Auf >= 1 festlegen

apg_adaptive_join_cost_threshold Dieser Parameter legt einen Mindestschwellenwert für Abfragekosten fest. Adaptive Join deaktiviert sich automatisch für Abfragen, die unter diesem Schwellenwert liegen. Dadurch wird ein Leistungsaufwand bei einfachen Abfragen vermieden, bei denen die Kosten für die Planung eines adaptiven Joins die Vorteile des Wechsels von Nested Loop zu Hash-Join übersteigen könnten.

Legt den Mindestschwellenwert für Abfragekosten fest

  • Standardwert: 100

  • Gültiger Bereich: 0 bis DBL_MAX

apg_enable_parameterized_adaptive_join Dieser Parameter erweitert Adaptive Join-Funktionen auf parametrisierte Nested Loop Joins, wenn er aktiviert ist. Standardmäßig funktioniert Adaptive Join nur mit nicht parametrisierten Nested Loop Joins, da diese eher von der Umstellung auf Hash-Join profitieren. Parametrisierte Nested Loop Joins schneiden in der Regel besser ab, sodass die Umstellung auf Hash-Join weniger kritisch ist.

Steuert das Adaptive-Join-Verhalten für Nested Loop Joins

  • Standardwert: false

  • Zulässige Werte: true/false

    • Bei „false“: Funktioniert nur mit nicht parametrisierten Nested Loop Joins

    • Wenn wahr: Funktioniert sowohl mit parametrisierten als auch mit nicht parametrisierten Nested Loop Joins

Anmerkung

apg_adaptive_join_crossover_multiplier muss zuerst aktiviert werden