本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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/a 、lowest 、low 、normal 、high 和 highest ,其中 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)