EXPLAIN-Joins für Amazon Redshift Redshift-Abfragepläne - AWS Präskriptive Leitlinien

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-Joins für Amazon Redshift Redshift-Abfragepläne

Amazon Redshift verwendet verschiedene Join-Operatoren, um Daten abzurufen, die auf folgenden Kriterien basieren:

  • Das physische Design der Tabellen, die verknüpft werden

  • Die Struktur der Abfrage

  • Der Speicherort der Daten, die für die Verknüpfung benötigt werden

  • Die spezifischen Anforderungen der Abfrage selbst

Die folgenden Join-Typen werden häufig in Amazon Redshift verwendet:

  • Verschachtelte Schleife — Eine verschachtelte Schleife tritt auf, wenn keine Hashtabelle zwischen den beiden Tabellen erstellt werden kann. Verschachtelte Schleifen werden hauptsächlich für Cross-Joins (kartesische Produkte) und einige Ungleichheitsverknüpfungen verwendet. Dazu muss die Datenbank jeden Wert in der linken Tabelle mit jedem Wert in der rechten Tabelle vergleichen. Die Komplexität eines Nested-Loop-Joins ist insofern „quadratisch“, als Sie ungefähr N*N (oder N²) verschiedene Operationen ausführen müssen, um den Join zu verarbeiten. Die verschachtelte Schleife ist der am wenigsten optimale Verbindungstyp.

  • Hash-Join — In einem Hash-Join sind die Join-Bedingungen nicht perfekt aufeinander abgestimmt, aber Amazon Redshift kann die Verwendung von Hash-Joins mit ein wenig Arbeit bewältigen. Ein Hash-Join ist in der Regel schneller als ein Nested-Loop-Join. Amazon Redshift betrachtet beide Tabellen und erstellt zwischen ihnen eine Hashtabelle, die wie eine Nachschlagetabelle aussieht, die sich in der Mitte der Tabellen befindet. Hash-Join- und Hash-Operatoren werden beispielsweise verwendet, wenn Tabellen verknüpft werden, bei denen die Join-Spalten nicht gleichzeitig Verteilungs- und Sortierschlüssel sind.

  • Merge-Join — Ein Merge-Join ist in der Regel der schnellste Join und wird für innere Joins und Out-Joins verwendet. Bei einem Merge-Join passen beide Tabellen perfekt zueinander. Das bedeutet, dass die Join-Bedingung auf jeder Seite der Verteilungsschlüssel und der Sortierschlüssel ist. Beide Tabellen sind perfekt aufeinander ausgerichtet, ohne dass Anpassungen erforderlich sind. Beachten Sie, dass die unsortierten Zeilen in den Tabellen weniger als 20 Prozent der verknüpften Tabellen ausmachen sollten. Um den Prozentsatz der unsortierten Zeilen anzuzeigen, fragen Sie die Systemtabelle SVV_TABLE_INFO ab. Der Zusammenführungs-Join ermöglicht nicht die Erstellung eines vollständigen Joins.