

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
<a name="explain-operators"></a>

In diesem Abschnitt werden kurz die Operatoren beschrieben, die Sie in der `EXPLAIN` Ausgabe am häufigsten sehen.

## Sequentielles Scannen
<a name="sequential-scan"></a>

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
<a name="join-operators"></a>

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
<a name="join-nested-loop"></a>

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.](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_ALERT_EVENT_LOG.html) 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
<a name="join-hash"></a>

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
<a name="join-merge"></a>

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](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_TABLE_INFO.html) ab.

## Aggregat-Operatoren
<a name="aggregate-operators"></a>

Der Abfrageplan verwendet die folgenden Operatoren in Abfragen, die Aggregatfunktionen und Operationen beinhalten: `GROUP BY`
+ **Aggregat** — Operator für skalare Aggregatfunktionen wie und `AVG` `SUM`
+ **HashAggregate**— Operator für unsortierte gruppierte Aggregatfunktionen
+ **GroupAggregate**— Operator für sortierte gruppierte Aggregatfunktionen

### Sortieroperatoren
<a name="operators-sort"></a>

Der Abfrageplan verwendet die folgenden Operatoren, wenn Abfragen Ergebnismengen sortieren oder zusammenführen müssen:
+ **Sortieren** — Wertet die `ORDER BY` Klausel und andere Sortiervorgänge aus, z. B. Sortiervorgänge, die für `UNION` Abfragen und Verknüpfungen erforderlich sind, `SELECT DISTINCT` Abfragen und Fensterfunktionen
+ **Zusammenführen** — Erzeugt endgültige sortierte Ergebnisse entsprechend den sortierten Zwischenergebnissen, die aus parallel Operationen stammen

### Die Operatoren UNION, INTERSECT und EXCEPT
<a name="operators-union"></a>

Der Abfrageplan verwendet die folgenden Operatoren für Abfragen, die Mengenoperationen mit `UNION``INTERSECT`, und `EXCEPT` beinhalten:
+ **Unterabfrage** — Wird zum Ausführen `UNION` von Abfragen verwendet
+ **Hash Intersect Distinct** — Wird zum Ausführen von Abfragen verwendet `INTERSECT`
+ **SetOp Außer** — Wird zum Ausführen `EXCEPT` (oder`MINUS`) von Abfragen verwendet

### Andere Operatoren
<a name="operators-other"></a>

Die folgenden Operatoren kommen auch häufig in der `EXPLAIN` Ausgabe von Routineabfragen vor:
+ **Eindeutig** — Entfernt Duplikate für `SELECT DISTINCT` Abfragen und `UNION` Abfragen
+ **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