SVL_QLOG - Amazon Redshift

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

SVL_QLOG

SVL_QLOG 檢視包含針對資料庫執行之所有查詢的記錄。

Amazon Redshift 會從 STL_QUERY 資料表以可讀資訊子集的形式建立 SVL_QLOG 檢視。使用此資料表來找出最近執行之查詢的查詢 ID,或查看完成查詢需要多長時間。

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

此資料表中的部份或所有資料也會在 SYS 監控檢視 SYS_QUERY_HISTORY 中找到。SYS 監視檢視中的資料會格式化為更易於使用和理解。我們建議您使用 SYS 監控檢視進行查詢。

資料表欄

欄名稱 資料類型 描述
userid integer 產生項目的使用者之 ID。
query integer 查詢 ID。您可以使用此 ID 來聯結各種其他系統資料表與檢視。
xid bigint 交易 ID。
pid integer 與查詢相關聯的處理程序 ID。
starttime timestamp 陳述式開始執行的確切時間,精確度為六位數的小數秒,例如:2009-06-12 11:29:19.131358
endtime timestamp 陳述式完成執行的確切時間,精確度為六位數的小數秒,例如:2009-06-12 11:29:19.193640
elapsed bigint 查詢執行的所需時間 (微秒)。
aborted integer 如果查詢已被系統中止或已被使用者取消,則此欄包含 1。如果查詢執行至完成,欄位會包含 0。因工作負載管理目的而取消且後續會再重新啟動的查詢也會在此欄位中擁有值 1
label character(320) 用於執行查詢的檔案名稱,或以 SET QUERY_GROUP 命令定義的標籤。如果查詢不是檔案型,或未設定 QUERY_GROUP 參數,則此欄位值為 default
substring character(60) 遭截斷的查詢文字。
source_query integer 如果查詢使用了結果快取,則為快取結果來源之查詢的查詢 ID。如果未使用結果快取,此欄位的值為 NULL
concurrency_scaling_status_txt text 查詢是執行於主要叢集或並行擴展叢集的描述。
from_sp_call integer 如果是從預存程序呼叫查詢,則為程序呼叫的查詢 ID。如果查詢不是在預存程序中執行,則此欄位為 NULL

範例查詢

下列範例傳回使用者 userid = 100 執行之最近五個資料庫查詢的查詢 ID、執行時間和遭截斷的查詢文字。

select query, pid, elapsed, substring from svl_qlog where userid = 100 order by starttime desc limit 5; query | pid | elapsed | substring --------+-------+----------+----------------------------------------------- 187752 | 18921 | 18465685 | select query, elapsed, substring from svl_... 204168 | 5117 | 59603 | insert into testtable values (100); 187561 | 17046 | 1003052 | select * from pg_table_def where tablename... 187549 | 17046 | 1108584 | select * from STV_WLM_SERVICE_CLASS_CONFIG 187468 | 17046 | 5670661 | select * from pg_table_def where schemaname... (5 rows)

下列範例會傳回 SQL 指令碼名稱 (LABEL 欄位) 和已取消查詢的歷經時間 (aborted=1):

select query, elapsed, trim(label) querylabel from svl_qlog where aborted=1; query | elapsed | querylabel -------+----------+------------------------- 16 | 6935292 | alltickittablesjoin.sql (1 row)