SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数 - ステートメント・スナップショット情報の検索

SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数は、アプリケーション・スナップショットから SQL または XQuery ステートメントについての情報を戻します。

重要: SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数は推奨されません。 MON_GET_ACTIVITY 表関数-アクティビティーのリストを戻す を使用して、これらの非推奨のインターフェースによって返される情報を取得します。
管理ビューまたは表関数のどちらを使用しているかによって、以下のいずれかのセクションを参照してください。

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 です。

戻される可能性のある情報の完全なリストは、 表 1 を参照してください。

許可

このビューを使用するには、以下のいずれかの許可が必要です。
  • 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 コマンドと同等の情報を提供しますが、すべてのデータベース・パーティションからデータを取得します。

戻される可能性のある情報の完全なリストは、 表 1 を参照してください。

構文

Read syntax diagramSkip visual syntax diagramSNAP_GET_STMT(dbname, member)

スキーマは SYSPROC です。

表関数パラメーター

dbname
現在接続されているデータベースと同じインスタンス内の有効なデータベース名を指定する、タイプ VARCHAR(128) の入力引数。 "Indirect" または "Home" のディレクトリー項目タイプを持つデータベース名を指定します。 このディレクトリー項目タイプは、LIST DATABASE DIRECTORY コマンドで確認できます。 現在接続されているデータベースからのスナップショットを取得するには、空ストリングを指定します。 現在接続されているデータベースと同じインスタンス内のすべてのデータベースからのスナップショットを取得するには、NULL 値を指定します。
member
有効なデータベース・メンバー番号を指定する、タイプ INTEGER のオプションの入力引数。 現在のデータベース・メンバーの場合は -1、すべてアクティブなデータベース・メンバーの集合の場合は -2 を指定します。 dbnameNULL に設定されておらず、 memberNULLに設定されている場合、 -1memberに対して暗黙的に設定されます。 この入力オプションを使用しない場合、つまり dbname のみを指定する場合、データはすべてのアクティブなデータベース・メンバーから戻されます。 アクティブなデータベース・メンバーとは、アプリケーションによるデータベースへの接続およびデータベースの使用が可能なメンバーのことです。

dbnamemember の両方を 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   
...                                      

戻される情報

表 1. SNAPSTMT 管理ビューおよび SNAP_GET_STMT 表関数によって戻される情報
列名 データ・タイプ 説明または対応するモニター・エレメント
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 を戻します。これは次のいずれかです。
  • DYNAMIC
  • NON_STMT
  • STATIC
  • STMT_TYPE_UNKNOWN
STMT_OPERATION VARCHAR(20) stmt_operation/operation-ステートメント操作 。 このインターフェースは、sqlmon.h での定義に基づくテキスト ID を戻します。これは次のいずれかです。
  • CALL
  • CLOSE
  • COMPILE
  • DESCRIBE
  • EXECUTE
  • EXECUTE_IMMEDIATE
  • FETCH
  • FREE_LOCATOR
  • GETAA
  • GETNEXTCHUNK
  • GETTA
  • NONE
  • OPEN
  • PREP_COMMIT
  • PREP_EXEC
  • PREP_OPEN
  • PREPARE
  • REBIND
  • REDIST
  • REORG
  • RUNSTATS
  • SELECT
  • SET
  • STATIC_COMMIT
  • STATIC_ROLLBACK
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。