SYS_QUERY_EXPLAIN - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

SYS_QUERY_EXPLAIN

顯示已提交供執行之用的查詢的 EXPLAIN 計劃。

所有使用者都可看見 SYS_QUERY_EXPLAIN。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需更多詳細資訊,請參閱 系統資料表和檢視中資料的可見性

資料表欄

欄名稱 資料類型 說明
user_id integer 提交查詢之使用者的識別碼。
query_id bigint 查詢識別碼。詳細的查詢資訊儲存在 SYS_QUERY_HISTORY 中。
child_query_sequence integer 重寫使用者查詢的順序,從 1 開始。
plan_node_id integer 計畫節點的識別碼,其對應至查詢中的一或多個步驟。
plan_parent_id integer 計畫節點的父節點識別碼。父節點可以擁有多個子節點。例如,合併聯結是已聯結資料表上掃描的父節點。
plan_node character(400) 來自 EXPLAIN 輸出的節點文字。在 EXPLAIN 輸出中,提及在運算節點上執行的計畫節點是以 XN 為字首。
node_info character(400) 計劃節點的限定詞和篩選條件資訊。例如,此資料欄中包括聯結條件和 WHERE 子句限制。

範例查詢

下列範例是單一查詢的 EXPLAIN 計畫。

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)