SYS_PROCEDURE_CALL - Amazon Redshift

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

SYS_PROCEDURE_CALL

使用 SYS_PROCEDURE_CALL 檢視來取得預存程序呼叫的相關資訊,包括開始時間、結束時間、預存程序呼叫的狀態,以及巢狀預存程序呼叫的呼叫階層。每次預存程序呼叫會接收查詢 ID。

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

資料表欄

欄名稱 資料類型 描述
session_user_id integer 使用者的識別碼,該使用者建立工作階段,並且是最上層預存程序呼叫的叫用者。
security_user_id integer 使用者的識別碼,該使用者的權限用於執行預存程序中的陳述式。如果預存程序是 DEFINER,那麼這將是預存程序的擁有者 user_id。
query_id integer 預存程序呼叫的查詢識別碼。
query_text char(4000) 預存程序呼叫查詢的文字。
start_time timestamp 查詢開始執行的時間 (以 UTC 為單位)。例如,時間戳記使用六位數精確度來表示小數秒。2009-06-12 11:29:19.131358.
end_time timestamp 查詢完成執行的時間 (以 UTC 為單位)。時間戳記會使用六位數精確度來表示小數秒,例如:2009-06-12 11:29:19.131358。
status char(10) 預存程序呼叫的狀態。系統停止或使用者取消預存程序時,會取消該值。如果預存程序呼叫執行到完成,則值為成功。
caller_procedure_query_id integer 如果預存程序呼叫由另一個預存程序呼叫所調用,則此欄包含外層呼叫的查詢 ID。否則此欄位為 NULL。

範例查詢

下列查詢會傳回巢狀預存程序呼叫階層。

select query_id, datediff(seconds, start_time, end_time) as elapsed_time, status, trim(query_text) as call, caller_procedure_query_id from sys_procedure_call;

輸出範例。

query_id | elapsed_time | status | call | caller_procedure_query_id ----------+--------------+---------+--------------------------------------------------+--------------------------- 3087 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d(1) | 3085 3085 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d_2(1); | (2 rows)