SVL_STORED_PROC_CALL - Amazon Redshift

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

SVL_STORED_PROC_CALL

您可以查詢系統檢視 SVL_STORED_PROC_CALL,以取得預存程序呼叫的相關資訊,包括開始時間、結束時間及是否取消呼叫。每次預存程序呼叫會接收查詢 ID。

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

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

資料表欄

欄名稱 資料類型 描述
userid integer 使用者的 ID,該使用者的權限用於執行陳述式。如果此呼叫套疊於 SECURITY DEFINER 預存程序內,則此為該預存程序的擁有者的 userid。
session_userid integer 使用者的 ID,該使用者建立工作階段,並且是最上層預存程序呼叫的叫用者。
query integer 程序呼叫的查詢 ID。
label character(320) 用於執行查詢的檔案名稱,或以 SET QUERY_GROUP 命令定義的標籤。如果查詢不是檔案型,或未設定 QUERY_GROUP 參數,則此欄位值為預設值。
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。
from_sp_call integer 如果程序呼叫由另一個程序呼叫所叫用,則此欄包含外層呼叫的查詢 ID。否則此欄位為 NULL。

範例查詢

下列查詢傳回過去一天的預存程序呼叫的經歷時間 (依遞減順序) 和完成狀態。

select query, datediff(seconds, starttime, endtime) as elapsed_time, aborted, trim(querytxt) as call from svl_stored_proc_call where starttime >= getdate() - interval '1 day' order by 2 desc; query | elapsed_time | aborted | call --------+--------------+---------+----------------------------------------------------------------------------------- 4166 | 7 | 0 | call search_batch_status(35,'succeeded'); 2433 | 3 | 0 | call test_batch (123456) 1810 | 1 | 0 | call prod_benchmark (123456) 1836 | 1 | 0 | call prod_testing (123456) 1808 | 1 | 0 | call prod_portfolio ('N', 123456) 1816 | 1 | 1 | call prod_portfolio ('Y', 123456)