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.
EXPLAIN-Operatoren für Amazon Redshift Redshift-Abfragepläne
In diesem Abschnitt werden kurz die Operatoren beschrieben, die Sie in der EXPLAIN Ausgabe am häufigsten sehen.
Sequentielles Scannen
Der sequenzielle Scan-Operator (Seq Scan) scannt eine Tabelle. Seq Scan scannt jede Spalte in der Tabelle sequentiell von Anfang bis Ende und wertet Abfrageeinschränkungen (in der WHERE Klausel) für jede Zeile aus.
Join-Operatoren
Amazon Redshift wählt Join-Operatoren abhängig vom physischen Design der Tabellen, für die die Join-Operation ausgeführt wird, vom Speicherort der Daten, die für den Join benötigt werden, und von den spezifischen Anforderungen der Abfrage selbst aus.
Verschachtelte Schleife
Eine verschachtelte Schleife wird hauptsächlich für Cross-Joins verwendet. Kreuz-Joins haben keine Join-Bedingung, daher ist das Ergebnis das kartesische Produkt zweier Tabellen. Verschachtelte Schleifen werden in der Regel als verschachtelte Schleifenverknüpfungen ausgeführt. Dabei handelt es sich um die langsamsten Verbindungsarten. Wenn eine verschachtelte Schleife vorhanden ist, wird in der Ansicht STL_ALERT_EVENT_LOG möglicherweise ein Warnungsereignis für verschachtelte Schleifen angezeigt. Sie können die folgende Abfrage ausführen, um die Abfragen mit verschachtelten Schleifen zu identifizieren:
select q.query, trim(q.querytxt) as sql_query, q.starttime from stl_query q join stl_alert_event_log l on l.query = q.query and l.event like 'Nested Loop Join in the query plan%' order by q.starttime desc;
Hash-Join und Hash
Hash-Join- und Hash-Operatoren sind in der Regel schneller als Nested-Loop-Join. Diese Operatoren werden für innere Verknüpfungen und linke und rechte äußere Verknüpfungen verwendet. Sie können Hash-Join- und Hash-Operatoren verwenden, wenn Sie Tabellen verknüpfen, bei denen die Join-Spalten nicht gleichzeitig Verteilungs- und Sortierschlüssel sind. Der Hash-Operator erstellt die Hashtabelle für die innere Tabelle im Join. Der Hash-Join-Operator liest die äußere Tabelle, hasht die Verbindungsspalte und findet Übereinstimmungen in der inneren Hashtabelle.
Merge Join
Der Merge-Join-Operator ist in der Regel der schnellste Join und wird für innere Joins und Out-Joins verwendet. Der Merge-Join wird nicht für vollständige Verknüpfungen verwendet. Sie können eine Mergeverknüpfung verwenden, wenn Sie Tabellen verknüpfen, deren Join-Spalten sowohl Verteilungs- als auch Sortierschlüssel sind, und wenn weniger als 20 Prozent der verknüpften Tabellen unsortiert sind. Der Merge-Join-Operator liest zwei sortierte Tabellen der Reihe nach und findet die passenden Zeilen. Um den Prozentsatz der unsortierten Zeilen anzuzeigen, fragen Sie die Systemtabelle SVV_TABLE_INFO ab.
Aggregat-Operatoren
Der Abfrageplan verwendet die folgenden Operatoren in Abfragen, die Aggregatfunktionen und Operationen beinhalten: GROUP BY
-
Aggregat — Operator für skalare Aggregatfunktionen wie und
AVGSUM -
HashAggregate— Operator für unsortierte gruppierte Aggregatfunktionen
-
GroupAggregate— Operator für sortierte gruppierte Aggregatfunktionen
Sortieroperatoren
Der Abfrageplan verwendet die folgenden Operatoren, wenn Abfragen Ergebnismengen sortieren oder zusammenführen müssen:
-
Sortieren — Wertet die
ORDER BYKlausel und andere Sortiervorgänge aus, z. B. Sortiervorgänge, die fürUNIONAbfragen und Verknüpfungen erforderlich sind,SELECT DISTINCTAbfragen und Fensterfunktionen -
Zusammenführen — Erzeugt endgültige sortierte Ergebnisse entsprechend den sortierten Zwischenergebnissen, die aus parallel Operationen stammen
Die Operatoren UNION, INTERSECT und EXCEPT
Der Abfrageplan verwendet die folgenden Operatoren für Abfragen, die Mengenoperationen mit UNIONINTERSECT, und EXCEPT beinhalten:
-
Unterabfrage — Wird zum Ausführen
UNIONvon Abfragen verwendet -
Hash Intersect Distinct — Wird zum Ausführen von Abfragen verwendet
INTERSECT -
SetOp Außer — Wird zum Ausführen
EXCEPT(oderMINUS) von Abfragen verwendet
Andere Operatoren
Die folgenden Operatoren kommen auch häufig in der EXPLAIN Ausgabe von Routineabfragen vor:
-
Eindeutig — Entfernt Duplikate für
SELECT DISTINCTAbfragen undUNIONAbfragen -
Limit — Verarbeitet die Klausel
LIMIT -
Fenster — Führt Fensterfunktionen aus
-
Ergebnis — Führt Skalarfunktionen aus, für die kein Tabellenzugriff erforderlich ist
-
Unterplan — Wird für bestimmte Unterabfragen verwendet
-
Netzwerk — Sendet Zwischenergebnisse zur weiteren Verarbeitung an den Leader-Knoten
-
Materialisieren — Speichert Zeilen für die Eingabe in verschachtelte Loop-Joins und einige Merge-Joins