SYS_PROCEDURE_CALL - Amazon Redshift

SYS_PROCEDURE_CALL

SYS_PROCEDURE_CALL ビューを使用して、ストアドプロシージャ呼び出しに関する情報として、開始時刻、終了時刻、ストアドプロシージャ呼び出しのステータス、ネストされたストアドプロシージャ呼び出しの呼び出し階層などを取得できます。ストアドプロシージャ呼び出しごとにクエリ ID を受け取ります。

SYS_PROCEDURE_CALL はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

テーブルの列

列名 データ型 説明
session_user_id integer セッションの作成元であり、最上位ストアドプロシージャ呼び出しの呼び出し元であるユーザーの ID。
security_user_id integer ストアドプロシージャ内でステートメントを実行するために使用された権限を持つユーザーの ID。ストアドプロシージャが DEFINER の場合、これがストアドプロシージャの所有者 user_id になります。
query_id integer ストアドプロシージャ呼び出しのクエリ ID。
query_text char(4000) ストアドプロシージャ呼び出しのクエリのテキスト。
start_time timestamp クエリの実行が開始した時刻 (UTC)。例えば、タイムスタンプは、秒の小数部に 6 桁の精度を使用します。2009-06-12 11:29:19.131358.
end_time timestamp クエリの実行が終了した時刻 (UTC)。タイムスタンプは、秒の小数部に 6 桁の精度を使用します。例: 2009-06-12 11:29:19.131358。
ステータス char(10) ストアドプロシージャ呼び出しのステータス。ストアドプロシージャがシステムによって停止されたか、ユーザーによってキャンセルされた場合、値は canceled です。ストアドプロシージャ呼び出しが最後まで実行された場合、値は success です。
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)