Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
SYS_QUERY_EXPLAIN
Zeigt den EXPLAIN-Plan für eine Abfrage an, die zur Ausführung übermittelt wurde.
SYS_QUERY_EXPLAIN ist für alle Benutzer sichtbar. Superuser können alle Zeilen sehen; reguläre Benutzer können nur ihre eigenen Daten sehen. Weitere Informationen finden Sie unter Sichtbarkeit der Daten in Systemtabellen und Ansichten.
Tabellenspalten
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
| user_id | integer | Die ID des Benutzers, der die Abfrage gesendet hat. |
| query_id | bigint | Die Abfrage-ID. Detaillierte Abfrageinformationen werden in SYS_QUERY_HISTORY gespeichert. |
| child_query_sequence | Ganzzahl | Die Reihenfolge der neu geschriebenen Benutzerabfrage, beginnend mit 1. |
| plan_node_id | Ganzzahl | Die ID eines Plan-Knotens, der mit einem oder mehreren Schritten in der Ausführung der Abfrage verwunden ist. |
| plan_parent_id | Ganzzahl | Die ID des übergeordneten Knotens des Plan-Knotens. Ein übergeordneter Knoten kann mehrere untergeordnete Knoten haben. So ist beispielsweise ein Zusammenführungsknoten der übergeordnete Knoten der Scans in den verbundenen Tabellen. |
| plan_node | character(400) | Der Knotentext aus der EXPLAIN-Ausgabe. Planknoten, die sich auf die Ausführung auf Datenverarbeitungsknoten beziehen, haben das Präfix XN in der EXPLAIN-Ausgabe. |
| node-info | character(400) | Qualifizierer- und Filterinformationen für den Plan-Knoten. Diese Spalte enthält zum Beispiel Join-Bedingungen und Einschränkungen für WHERE-Klauseln. |
Beispielabfragen
Das folgende Beispiel ist der EXPLAIN-Plan einer einzelnen Abfrage.
SELECT * FROM sys_query_explain WHERE query_id = 612635 ORDER BY plan_node_id; userid | query_id | child_query_sequence | plan_node_id | plan_parent_id | plan_node | plan_info --------+----------+----------------------+--------------+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 100 | 612635 | 1 | 1 | 0 | XN Limit (cost=3604047533041.00..3604047533041.25 rows=100 width=20) | 100 | 612635 | 1 | 2 | 1 | -> XN Merge (cost=3604047533041.00..3604047533148.02 rows=42809 width=20) | Merge Key: sum(b.totalprice) 100 | 612635 | 1 | 3 | 2 | -> XN Network (cost=3604047533041.00..3604047533148.02 rows=42809 width=20) | Send to leader 100 | 612635 | 1 | 4 | 3 | -> XN Sort (cost=3604047533041.00..3604047533148.02 rows=42809 width=20) | Sort Key: sum(b.totalprice) 100 | 612635 | 1 | 5 | 4 | -> XN HashAggregate (cost=2604047529640.76..2604047529747.78 rows=42809 width=20) | 100 | 612635 | 1 | 6 | 5 | -> XN Hash Join DS_DIST_NONE (cost=15104956.16..2602364653507.34 rows=336575226684 width=20) | Hash Cond: (("outer".listid = "inner".listid) AND ("outer".sellerid = "inner".sellerid)) 100 | 612635 | 1 | 7 | 6 | -> XN Seq Scan on listing b (cost=0.00..7884677.12 rows=788467712 width=24) | 100 | 612635 | 1 | 8 | 6 | -> XN Hash (cost=7063797.76..7063797.76 rows=706379776 width=8) | 100 | 612635 | 1 | 9 | 8 | -> XN Seq Scan on sales a (cost=0.00..7063797.76 rows=706379776 width=8) | (9 rows)