STL_WLM_QUERY - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

STL_WLM_QUERY

包含所處理之服務類別中每次嘗試執行查詢的記錄WLM。

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

此表格中的部分或全部資料也可以在SYS監視檢視中找到SYS_QUERY_HISTORY。SYS監視檢視中的資料格式化為更易於使用和理解。我們建議您使用SYS監視視圖進行查詢。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
xid integer 查詢或子查詢的交易 ID。
task integer 用於透過工作負載管理員追蹤查詢的 ID。可以與多個查詢相關聯IDs。如果查詢已重新啟動,會將新的查詢 ID (而非新的任務 ID) 指派給該查詢。
query integer 查詢 ID。如果查詢已重新啟動,會將新的查詢 ID (而非新的任務 ID) 指派給該查詢。
service_class integer 服務類別的 ID。如需服務類別的清單IDs,請參閱WLM服務類 IDs
slot_count integer 根據佇列設定的WLM並行層級,查詢使用的查詢插槽數目。預設值為 1。如需詳細資訊,請參閱 wlm_query_slot_count
service_class_start_time timestamp 查詢已指派給服務類別的時間。這個時間是在UTC時區。
queue_start_time timestamp 查詢進入服務類別佇列的時間。這個時間是在UTC時區。
queue_end_time timestamp 查詢離開服務類別佇列的時間。這個時間是在UTC時區。
total_queue_time bigint 查詢在佇列中花費的微秒總數
exec_start_time timestamp 查詢開始在服務類別執行的時間。這個時間是在UTC時區。
exec_end_time timestamp 查詢在服務類別完成執行的時間。這個時間是在UTC時區。
total_exec_time bigint 查詢花費在執行的微秒數。
service_class_end_time timestamp 查詢離開服務類別的時間。這個時間是在UTC時區。
final_state character(16) 保留以供系統使用。
est_peak_mem bigint 保留以供系統使用。
query_priority char(20) 查詢的優先順序。可能的值為 n/alowestlownormalhighhighest,其中 n/a 表示不支援查詢優先順序。
service_class_name character(64) 服務類別名稱。如需有關服務類別的詳細資訊,請參閱WLM系統資料表和檢視表。

範例查詢

檢視佇列和執行中的平均查詢時間

下列查詢顯示大於 4 之服務類別的目前組態。如需服務類別的清單IDs,請參閱WLM服務類 IDs

下列查詢會傳回每個查詢花費在查詢佇列以及執行每個服務類別的平均時間 (以微秒為單位)。

select service_class as svc_class, count(*), avg(datediff(microseconds, queue_start_time, queue_end_time)) as avg_queue_time, avg(datediff(microseconds, exec_start_time, exec_end_time )) as avg_exec_time from stl_wlm_query where service_class > 4 group by service_class order by service_class;

此查詢傳回下列範例輸出:

svc_class | count | avg_queue_time | avg_exec_time -----------+-------+----------------+--------------- 5 | 20103 | 0 | 80415 5 | 3421 | 34015 | 234015 6 | 42 | 0 | 944266 7 | 196 | 6439 | 1364399 (4 rows)

檢視佇列和執行中的查詢時間上限

下列查詢會傳回每個查詢花費在任何查詢佇列以及執行每個服務類別的時間量上限 (以微秒為單位)。

select service_class as svc_class, count(*), max(datediff(microseconds, queue_start_time, queue_end_time)) as max_queue_time, max(datediff(microseconds, exec_start_time, exec_end_time )) as max_exec_time from stl_wlm_query where svc_class > 5 group by service_class order by service_class;
svc_class | count | max_queue_time | max_exec_time -----------+-------+----------------+--------------- 6 | 42 | 0 | 3775896 7 | 197 | 37947 | 16379473 (4 rows)