本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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)