本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
STL_QUERY
傳回有關資料庫查詢的執行資訊。
注意
STL_ QUERY 和 STL _ QUERYTEXT 視圖僅包含有關查詢的信息,而不包含其他實用程序和DDL命令。如需 Amazon Redshift 所執行之所有陳述式的清單和資訊,您也可以查詢 STL _ DDLTEXT 和 STL _ UTILITYTEXT 檢視。如需 Amazon Redshift 所執行之所有陳述式的完整清單,您可以查詢 SVL _ STATEMENTTEXT 檢視。
STL_ QUERY 對所有用戶都可以看到。超級使用者可以看見所有資料列;一般使用者只能看見自己的資料。如需詳細資訊,請參閱系統資料表和檢視中資料的可見性。
此表格中的部分或全部資料也可以在SYS監視檢視中找到SYS_QUERY_HISTORY。SYS監視檢視中的資料格式化為更易於使用和理解。我們建議您使用SYS監視視圖進行查詢。
資料表欄
欄名稱 | 資料類型 | 描述 |
---|---|---|
userid | integer | 產生項目的使用者之 ID。 |
query | integer | 查詢 ID。查詢欄可用於加入其他系統表格與檢視。 |
label | character(320) | 用於執行查詢的檔案名稱或使用 SET QUERY _ GROUP 指令定義的標籤。如果查詢不是以檔案為基礎或未設定 QUERY _ GROUP 參數,則此欄位值為default 。 |
xid | bigint | 交易 ID。 |
pid | integer | 處理程序 ID。正常情況下,工作階段中的所有查詢都是在相同的處理程序中執行,所以若您在相同的工作階段中執行一系列查詢,則此值通常會保持不變。在某些內部事件之後,Amazon Redshift 可能會重新啟動作用中的工作階段並指派新PID工作階段。如需詳細資訊,請參閱STL_RESTARTED_SESSIONS。 |
database | character(32) | 當查詢發出時,要將使用者連接至其中的資料庫名稱。 |
querytxt | character(4000) | 查詢的實際查詢文字。 |
starttime | timestamp | 查詢開始的時間。UTC總時間包括佇列和執行。秒小數部分的精確度為 6 位元。例如:2009-06-12 11:29:19.131358 。 |
endtime | timestamp | 查詢完UTC成的時間。總時間包括佇列和執行。秒小數部分的精確度為 6 位元。例如:2009-06-12 11:29:19.131358 。 |
aborted | integer | 如果查詢已被系統中止或已被使用者取消,則此欄包含 1 。如果查詢完成執行 (包括將結果傳回至用戶端),則此資料欄包含 0 。如果用戶端在接收結果之前中斷連接,則查詢將標示為已取消 (1 ),即使它已在後端成功完成也一樣。 |
insert_pristine | integer | 當目前查詢正在執行時,寫入查詢是否能夠執行。1 = 不允許寫入查詢。0 = 允許寫入查詢。此欄位適用於偵錯。 |
concurrency_scaling_status | integer | 指出查詢是執行於主要叢集或並行擴展叢集。可能的值如下: 0 - 執行於主要叢集 1 - 執行於並行擴展叢集 大於 1 - 執行於主要叢集 |
範例查詢
下列查詢會列出五個最新查詢。
select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)
下列查詢會針對 2013 年 2 月 15 日執行的查詢,依遞減順序傳回經過時間。
select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)
下列查詢顯示查詢的佇列時間和執行時間。concurrency_scaling_status = 1
的查詢執行於並行擴展叢集。所有其他查詢皆執行於主要叢集。
SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;