SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数 - ステートメント・スナップショット情報の検索
SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数は、アプリケーション・スナップショットから SQL または XQuery ステートメントについての情報を戻します。
SNAPSTMT 管理ビュー
この管理ビューでは、現在接続されているデータベースのステートメント・スナップショット情報を検索できます。
MON_GET_AGENT、MON_GET_CONNECTION、MON_GET_MEMORY_POOL、および MON_GET_MEMORY_SET 表関数、ならびに MON_CURRENT_SQL および SNAPSUBSECTION 管理ビューとともに使用すると、SNAPSTMT 管理ビューは、 GET SNAPSHOT FOR APPLICATIONS on database-alias CLP コマンドと同等の情報を提供しますが、すべてのデータベース・メンバーからデータを取得します。
スキーマは SYSIBMADM です。
許可
- SNAPSTMT 管理ビューに対する SELECT 特権
- SNAPSTMT 管理ビューに対する CONTROL 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
- ACCESSCTRL 権限
- SECADM 権限
- SNAP_GET_STMT 表関数に対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
デフォルトの PUBLIC 特権
制限のないデータベースでは、このビューが自動的に作成されると、SELECT 特権が PUBLIC に付与されます。
例
SELECT SUBSTR(STMT_TEXT,1,30) AS STMT_TEXT, ROWS_READ, ROWS_WRITTEN,
STMT_OPERATION FROM SYSIBMADM.SNAPSTMT
STMT_TEXT ROWS_READ ROWS_WRITTEN STMT_OPERATION
---------...- ---------...- ------------...- --------------------
- 0 0 FETCH
- 0 0 STATIC_COMMIT
2 record(s) selected.
SNAP_GET_STMT 表関数
SNAP_GET_STMT 表関数は SNAPSTMT 管理ビューと同じ情報を戻しますが、特定のデータベース・メンバー、すべてのデータベース・メンバーの集約、またはすべてのデータベース・メンバーのいずれかの特定のデータベースを対象とした情報を検索することができます。
SNAP_GET_AGENT、SNAP_GET_AGENT_MEMORY_POOL、SNAP_GET_APPL、SNAP_GET_APPL_INFO、および SNAP_GET_SUBSECTION 表関数とともに使用すると、SNAP_GET_STMT 表関数は GET SNAPSHOT FOR ALL APPLICATIONS CLP コマンドと同等の情報を提供しますが、すべてのデータベース・パーティションからデータを取得します。
構文
スキーマは SYSPROC です。
表関数パラメーター
- dbname
- 現在接続されているデータベースと同じインスタンス内の有効なデータベース名を指定する、タイプ VARCHAR(128) の入力引数。 "Indirect" または "Home" のディレクトリー項目タイプを持つデータベース名を指定します。 このディレクトリー項目タイプは、LIST DATABASE DIRECTORY コマンドで確認できます。 現在接続されているデータベースからのスナップショットを取得するには、空ストリングを指定します。 現在接続されているデータベースと同じインスタンス内のすべてのデータベースからのスナップショットを取得するには、NULL 値を指定します。 member
- 有効なデータベース・メンバー番号を指定する、タイプ INTEGER のオプションの入力引数。 現在のデータベース・メンバーの場合は -1、すべてアクティブなデータベース・メンバーの集合の場合は -2 を指定します。 dbname が NULL に設定されておらず、 member が NULLに設定されている場合、 -1 は memberに対して暗黙的に設定されます。 この入力オプションを使用しない場合、つまり dbname のみを指定する場合、データはすべてのアクティブなデータベース・メンバーから戻されます。 アクティブなデータベース・メンバーとは、アプリケーションによるデータベースへの接続およびデータベースの使用が可能なメンバーのことです。
dbname と member の両方を NULL に設定すると、SNAP_WRITE_FILE プロシージャーにより作成されるファイルからのデータの読み取りが試行されます。 このファイルはいつでも作成される可能性があるため、データは現行のものであるとは限らないことに注意してください。 対応するスナップショット API 要求タイプを持つファイルが存在しない場合、SNAP_GET_STMT 表関数は、現在接続中のデータベースおよびデータベース・メンバー番号のスナップショットを取得します。
許可
- SNAP_GET_STMT 表関数に対する EXECUTE 特権
- DATAACCESS 権限
- SYSMON
- SYSCTRL
- SYSMAINT
- SYSADM
デフォルトの PUBLIC 特権
制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。
例
SELECT SUBSTR(STMT_TEXT,1,30) AS STMT_TEXT, ROWS_READ,
ROWS_WRITTEN, STMT_OPERATION FROM TABLE(SNAP_GET_STMT('',-1)) AS T
STMT_TEXT ROWS_READ ...
------------------------------ ---------...- ...
update t set a=3 0 ...
SELECT SUBSTR(STMT_TEXT,1,30) 0 ...
- 0 ...
- 0 ...
update t set a=2 9 ...
...
5 record(s) selected. ...
... ROWS_WRITTEN STMT_OPERATION
... ------------...- --------------------
... 0 EXECUTE_IMMEDIATE
... 0 FETCH
... 0 NONE
... 0 NONE
... 1 EXECUTE_IMMEDIATE
...
戻される情報
列名 | データ・タイプ | 説明または対応するモニター・エレメント |
---|---|---|
SNAPSHOT_TIMESTAMP | TIMESTAMP | スナップショットが取得された日時。 |
DB_NAME | VARCHAR(128) | db_name データベース名 |
AGENT_ID | BIGINT | agent_id アプリケーション・ハンドル (エージェント ID) |
ROWS_READ | BIGINT | rows_read 読み取り行数 |
ROWS_WRITTEN | BIGINT | rows_written 書き込み行数 |
NUM_AGENTS | BIGINT | num_agents ステートメントで作動しているエージェントの数 |
AGENTS_TOP | BIGINT | agents_top 作成されたエージェントの数 |
STMT_TYPE | VARCHAR(20) | stmt_type-ステートメント・タイプ 。 このインターフェースは、sqlmon.h での定義に基づくテキスト ID を戻します。これは次のいずれかです。
|
STMT_OPERATION | VARCHAR(20) | stmt_operation/operation-ステートメント操作 。 このインターフェースは、sqlmon.h での定義に基づくテキスト ID を戻します。これは次のいずれかです。
|
SECTION_NUMBER | BIGINT | section_number セクション番号 |
QUERY_COST_ESTIMATE | BIGINT | query_cost_estimate 照会コストの見積もり |
QUERY_CARD_ESTIMATE | BIGINT | query_card_estimate 照会行数の見積もり |
DEGREE_PARALLELISM | BIGINT | degree_parallelism 並列処理の度合い |
STMT_SORTS | BIGINT | stmt_sorts ステートメント・ソート回数 |
TOTAL_SORT_TIME | BIGINT | total_sort_time ソート時間合計 |
SORT_OVERFLOWS | BIGINT | sort_overflows ソート・オーバーフロー |
INT_ROWS_DELETED | BIGINT | int_rows_deleted 削除された内部行数 |
INT_ROWS_UPDATED | BIGINT | int_rows_updated 更新された内部行数 |
INT_ROWS_INSERTED | BIGINT | int_rows_inserted 挿入された内部行数 |
FETCH_COUNT | BIGINT | fetch_count 成功したフェッチの数 |
STMT_START | TIMESTAMP | stmt_start ステートメント操作開始タイム・スタンプ |
STMT_STOP | TIMESTAMP | stmt_stop ステートメント操作停止タイム・スタンプ |
STMT_USR_CPU_TIME_S | BIGINT | stmt_usr_cpu_time ステートメントに使用されたユーザー CPU 時間 |
STMT_USR_CPU_TIME_MS | BIGINT | stmt_usr_cpu_time ステートメントに使用されたユーザー CPU 時間 |
STMT_SYS_CPU_TIME_S | BIGINT | stmt_sys_cpu_time ステートメントが使用したシステム CPU 時間 |
STMT_SYS_CPU_TIME_MS | BIGINT | stmt_sys_cpu_time ステートメントが使用したシステム CPU 時間 |
STMT_ELAPSED_TIME_S | BIGINT | stmt_elapsed_time 最新のステートメント経過時間 |
STMT_ELAPSED_TIME_MS | BIGINT | stmt_elapsed_time 最新のステートメント経過時間 |
BLOCKING_CURSOR | SMALLINT | blocking_cursor ブロック・カーソル |
STMT_NODE_NUMBER | SMALLINT | stmt_node_number ステートメント・ノード |
CURSOR_NAME | VARCHAR(128) | cursor_name カーソル名 |
CREATOR | VARCHAR(128) | creator アプリケーション作成者 |
PACKAGE_NAME | VARCHAR(128) | package_name パッケージ名 |
STMT_TEXT | CLOB(16 M) | stmt_text SQL ステートメント・テキスト |
CONSISTENCY_TOKEN | VARCHAR(128) | consistency_token パッケージ整合性トークン |
PACKAGE_VERSION_ID | VARCHAR(128) | package_version_id パッケージ・バージョン |
POOL_DATA_L_READS | BIGINT | pool_data_l_reads バッファー・プール・データの論理読み取り |
POOL_DATA_P_READS | BIGINT | pool_data_p_reads バッファー・プール・データの物理読み取り |
POOL_INDEX_L_READS | BIGINT | pool_index_l_reads バッファー・プール索引の論理読み取り |
POOL_INDEX_P_READS | BIGINT | pool_index_p_reads バッファー・プール索引の物理読み取り |
POOL_XDA_L_READS | BIGINT | pool_xda_l_reads - バッファー・プール XDA データの論理読み取り : モニター・エレメント |
POOL_XDA_P_READS | BIGINT | pool_xda_p_reads - バッファー・プール XDA データの物理読み取り : モニター・エレメント |
POOL_TEMP_DATA_L_READS | BIGINT | pool_temp_data_l_reads バッファー・プール一時データの論理読み取り |
POOL_TEMP_DATA_P_READS | BIGINT | pool_temp_data_p_reads バッファー・プール一時データの物理読み取り |
POOL_TEMP_INDEX_L_READS | BIGINT | pool_temp_index_l_reads バッファー・プール一時索引の論理読み取り |
POOL_TEMP_INDEX_P_READS | BIGINT | pool_temp_index_p_reads バッファー・プール一時索引の物理読み取り |
POOL_TEMP_XDA_L_READS | BIGINT | pool_temp_xda_l_reads - バッファー・プール一時 XDA データの論理読み取り |
POOL_TEMP_XDA_P_READS | BIGINT | pool_temp_xda_p_reads - バッファー・プール一時 XDA データの物理読み取り : モニター・エレメント |
DBPARTITIONNUM | SMALLINT | dbpartitionnum - データベース・パーティション番号 : モニター・エレメント |
メンバー | SMALLINT | member - データベース・メンバー・モニター・エレメント |
* この列の元になるモニター・エレメントの合計消費時間を計算するには、このモニター・エレメントに関する _S で終わっている列で報告されている整数秒と、このモニター・エレメントに関する _MS で終わっている列に報告されている小数秒を、次の式を使用して加算しなければなりません: (monitor-element-name_S × 1,000,000 + monitor-element-name_MS) ÷ 1,000,000. 例えば、(ELAPSED_EXEC_TIME_S × 1,000,000 + ELAPSED_EXEC_TIME_MS) ÷ 1,000,000。 |