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。可與多個查詢 ID 關聯。如果查詢已重新啟動,會將新的查詢 ID (而非新的任務 ID) 指派給該查詢。
query integer 查詢 ID。如果查詢已重新啟動,會將新的查詢 ID (而非新的任務 ID) 指派給該查詢。
service_class integer 服務類別的 ID。如需服務類別 ID 的清單,請參閱 WLM 服務類別 ID
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 之服務類別的目前組態。如需服務類別 ID 的清單,請參閱 WLM 服務類別 ID

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

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)