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