

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.

# Plan in Amazon Redshift abfragen
<a name="query-plan"></a>

Ein *Abfrageplan* ist eine Liste von Anweisungen, die die Ausführungs-Engine befolgen muss, um eine Abfrage der Daten auszuführen. Sie können einen Abfrageplan erstellen, indem Sie den Befehl [EXPLAIN](https://docs.aws.amazon.com/redshift/latest/dg/r_EXPLAIN.html) gefolgt vom eigentlichen Abfragetext ausführen, wie die folgende Beispielabfrage zeigt:

```
EXPLAIN
select s.s_name, sum(li.l_quantity) as quantity
from tpch.lineitem li
join tpch.orders o
    on o.o_orderkey = li.l_orderkey
    and o.o_orderdate > '1992-05-01'
join tpch.supplier s
    on s.s_suppkey = li.l_suppkey
group by s.s_name
order by quantity desc
limit 10;
```

Wenn Sie den `EXPLAIN` Befehl für das obige Abfragebeispiel ausführen, erhalten Sie die folgende Ausgabe:

```
XN Limit (cost=1004400430902.15..1004400430902.17 rows=10 width=39)
  -> XN Merge (cost=1004400430902.15..1004400430926.97 rows=9928 width=39)
        Merge Key: sum(li.l_quantity)
        -> XN Network (cost=1004400430902.15..1004400430926.97 rows=9928 width=39)
              Send to leader
                  -> XN Sort (cost=1004400430902.15..1004400430926.97 rows=9928 width=39)
                     Sort Key: sum(li.l_quantity)
                      -> XN HashAggregate (cost=4400430218.24..4400430243.06 rows=9928 width=39)
                           -> XN Hash Join DS_BCAST_INNER (cost=21489.58..4400401726.35 rows=5698378 width=39)
                                 Hash Cond: ("outer".l_suppkey = "inner".s_suppkey)
                                     -> XN Hash Join DS_DIST_NONE (cost=21364.58..273387.85 rows=5698378 width=14)
                                            Hash Cond: ("outer".l_orderkey = "inner".o_orderkey)
                                                   -> XN Seq Scan on lineitem li (cost=0.00..60012.15 rows=6001215 width=22)
                                                   -> XN Hash (cost=17803.81..17803.81 rows=1424306 width=8)
                                                           -> XN Seq Scan on orders o (cost=0.00..17803.81 rows=1424306 width=8)
                                                                    Filter: (o_orderdate > '1992-05-01'::date)
                                     -> XN Hash (cost=100.00..100.00 rows=10000 width=33)
                                             -> XN Seq Scan on supplier s (cost=0.00..100.00 rows=10000 width=33)
```

**Anmerkung**  
Bei der Beispielausgabe eines Abfrageplans handelt es sich um eine vereinfachte, allgemeine Ansicht der Abfrageausführung. Der Beispielplan veranschaulicht nicht die Details der parallel Abfrageverarbeitung. Ausführliche Informationen erhalten Sie, wenn Sie die Abfrage ausführen und dann die Ansichten SVL\_QUERY\_SUMMARY oder [SVL\_QUERY\_REPORT verwenden, um zusammenfassende](https://docs.aws.amazon.com/redshift/latest/dg/r_SVL_QUERY_SUMMARY.html) [Informationen zur Abfrage abzurufen](https://docs.aws.amazon.com/redshift/latest/dg/r_SVL_QUERY_REPORT.html).

## Amazon-Redshift-Abfrage-Editor v2
<a name="query-editor-v2"></a>

Sie können die Abfragepläne auch in Amazon Redshift anzeigen, indem Sie die Option **Explain** im Abfrage-Editor v2 verwenden. Anweisungen finden Sie unter [Arbeiten mit dem Abfrage-Editor v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-using.html) in der Amazon Redshift Redshift-Dokumentation.

Der vom Abfrage-Editor v2 generierte Abfrageplan enthält die folgenden Informationen:
+ Welche Operationen führt die Ausführungs-Engine durch, wobei sie die Ergebnisse von unten nach oben liest
+ Welche Art von Schritt führt jede Operation aus
+ Welche Tabellen und Spalten werden in den einzelnen Operationen verwendet
+ Wie viele Daten werden in jedem Vorgang verarbeitet, gemessen an der Anzahl der Zeilen und der Datenbreite in Byte
+ Die relativen Kosten des Vorgangs (Die Kosten sind eine Kennzahl, mit der die relativen Ausführungszeiten der Schritte innerhalb eines Plans verglichen werden. Die Kosten liefern keine genauen Informationen über die tatsächlichen Ausführungszeiten oder den Speicherverbrauch und ermöglichen auch keinen aussagekräftigen Vergleich zwischen Ausführungsplänen. Die Kosten geben Ihnen jedoch einen Hinweis darauf, welche Operationen in einer Abfrage die meisten Ressourcen verbrauchen.)

## ERLÄUTERN SIE DIE PLÄNE
<a name="explain-plans"></a>

Sie können die [STL\_EXPLAIN-Systemtabelle](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_EXPLAIN.html) verwenden, um den `EXPLAIN` Plan für eine Abfrage anzuzeigen, die zur Ausführung eingereicht wurde. Insgesamt `STL_EXPLAIN` kann die Verwendung dazu beitragen, die Leistung, Effizienz und Kosteneffektivität Ihrer Amazon Redshift Redshift-Abfragen zu verbessern.

Die Verwendung `STL_EXPLAIN` bietet folgende Vorteile:
+ **Leistungsoptimierung** — `STL_EXPLAIN` kann dabei helfen, Bereiche einer Abfrage zu identifizieren, die für eine bessere Leistung optimiert werden können.
+ **Abfrageplanung** — `STL_EXPLAIN` kann Informationen darüber liefern, wie Amazon Redshift die Abfrage ausführt, und kann helfen, potenzielle Engpässe in der Abfrage zu identifizieren.
+ **Debugging** — `STL_EXPLAIN` kann bei der Diagnose von Problemen mit einer Abfrage helfen, indem es die Schritte zeigt, die Amazon Redshift zur Ausführung dieser Abfrage unternimmt.
+ **Das Verständnis des Verhaltens von Amazon Redshift** — `STL_EXPLAIN` kann Einblicke in die Verarbeitung von Abfragen durch Amazon Redshift geben. Dies kann dazu beitragen, Ihr Verständnis des Verhaltens von Amazon Redshift zu verbessern.
+ **Kostenoptimierung** — `STL_EXPLAIN` kann Informationen über die geschätzten Kosten einer Anfrage liefern. Auf diese Weise können Sie Bereiche identifizieren, in denen Sie die Kosten optimieren können.

Die folgende Abfrage ist ein Beispiel, das die Planknoten für eine bestimmte Abfrage zurückgibt:

```
select nodeid as id,
       plannode,
       info
from stl_explain
where query=1042904 
order by nodeid;
```

Die vorherige Abfrage gibt die folgende Ausgabe zurück.



![Ausgabe einer Abfrage, die die Abfrageplanknoten zurückgibt.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/query-lifecycle-redshift/images/query-output.png)


Der `EXPLAIN` Plan gibt nützliche Messwerte für jeden Vorgang zurück, einschließlich Kennzahlen zu Kosten, Zeilen und Breite. In Zeile 7 der vorherigen Abfrage wird beispielsweise Folgendes zurückgegeben:

```
->  XN Hash Join DS_DIST_NONE  (cost=21364.58..273387.85 rows=5698378 width=14)
```

### Kosten
<a name="query-plan-cost"></a>

Kosten sind ein relativer Wert, der für den Vergleich von Vorgängen innerhalb eines Plans nützlich ist. Die Kosten bestehen aus zwei Dezimalwerten, die durch zwei Perioden getrennt sind. In diesem Beispiel entsprechen die Kosten`21364.58..273387.85`. Berücksichtigen Sie dabei Folgendes:
+ Der erste Wert (in diesem Fall`21364.58`) gibt die relativen Kosten für die Rückgabe der ersten Zeile für diesen Vorgang an.
+ Der zweite Wert (in diesem Fall`273387.85`) gibt die relativen Kosten für den Abschluss des Vorgangs an. 

Die Kosten im Abfrageplan sind kumulativ und werden von niedrigeren zu höheren Zeilen zusammengefasst. In der obigen Beispielausgabe enthält Zeile 7 die Kosten der anderen Operationen in den Zeilen darunter (d. h. Zeilen 8—12 und darüber hinaus).

### Rows
<a name="query-plan-rows"></a>

Zeilen ist die geschätzte Anzahl der zurückzugebenden Zeilen. In diesem Beispiel wird erwartet, dass der Scan 5.698.378 Zeilen zurückgibt. Die Schätzung der Zeilen basiert auf den verfügbaren Statistiken, die durch den Befehl generiert wurden. `ANALYZE` Wenn `ANALYZE` die Schätzung in letzter Zeit nicht ausgeführt wurde, ist sie weniger zuverlässig.

### Width
<a name="query-plan-width"></a>

Die Breite ist die geschätzte Breite der durchschnittlichen Zeile in Byte. In diesem Beispiel wird erwartet, dass die durchschnittliche Zeile 14 Byte breit ist.