DB2 Version 9.7 for Linux, UNIX, and Windows

MON_GET_PKG_CACHE_STMT_DETAILS - パッケージ・キャッシュ項目に関する詳細メトリックの取得

MON_GET_PKG_CACHE_STMT_DETAILS 表関数は、1 つ以上のパッケージ・キャッシュ項目に関する詳細メトリックを戻します。

注: バージョン 9.7 のフィックスパック 1 以前で作成されたデータベースを使用している場合、このルーチンを実行するには、db2updv97 コマンドが既に実行済みでなければなりません。 バージョン 9.7 以前に作成されたデータベースを使用している場合は、db2updv97 コマンドを実行する必要はありません (データベースのマイグレーションによって自動的にカタログ更新が実行されるため)。 バージョン 9.7 にダウングレードすると、このルーチンは機能しなくなります。

MON_GET_PKG_CACHE_STMT_DETAILS 表関数で戻されるメトリックは、パッケージ・キャッシュ内のステートメントに関するすべてのメトリックの累計を表します。 ステートメント・メトリックは、アクティビティー完了時にパッケージ・キャッシュにロールアップされます。

構文

構文図を読む構文図をスキップする
>>-MON_GET_PKG_CACHE_STMT_DETAILS--(--section_type--,----------->

>--executable_id--,--search_args--,--member--)-----------------><

スキーマは SYSPROC です。

表関数パラメーター

section_type
オプションの入力引数 (D または S)、タイプは CHAR(1)。戻されるステートメントの情報の種類を指定します。 引数が NULL または空ストリングである場合、すべての SQL ステートメントについての情報が戻されます。 大/小文字は区別されません。D は動的を表し、S は静的を表します。
executable_id
オプションの入力引数、タイプは VARCHAR(32)。データベース・パッケージ・キャッシュの固有のセクションを指定するビット・データを表します。 NULL 値を指定すると、すべての SQL ステートメントについての情報が戻されます。executable_id が指定されている場合、section_type 引数は無視されます。 例えば、動的ステートメントで executable_id が指定されている場合、section_type が静的 ("S") として指定されていても、この表関数によって動的ステートメントの詳細が戻されます。
search_args
オプションのタイプ CLOB(1K) の入力パラメーター。これを使用して 1 つ以上の検索引数ストリングをオプションで指定できます。 例:
'<modified_within>5</modified_within><update_boundary_time>myPkgEvmon
     </update_boundary_time>'
使用可能な検索引数タグは次のとおりです。
  • '<modified_within>X</modified_within>'

    現在までの X 分間にキャッシュに挿入された、または実行されたステートメント項目だけを戻します (X は正の整数値)。 引数が指定されない場合、キャッシュ内のすべての項目が戻されます。

  • '<update_boundary_time>evmon_name</update_boundary_time>'

    evmon_name で指定されたパッケージ・キャッシュ・イベント・モニターに関して、イベント・モニター境界タイム・スタンプを現在時刻に更新します。 このイベント・モニターの WHERE 節で出力基準として where updated_since_boundary_time が指定される場合、今後にメトリックが更新されるパッケージ・キャッシュ項目だけが、パッケージ・キャッシュからの退去時にキャプチャーされます。 指定されたパッケージ・キャッシュ・イベント・モニターがコマンド発行時にアクティブである場合にのみ、この操作が効果を及ぼします。

  • '<stmt_details>true</stmt_details>' または '<stmt_details>false</stmt_details>'

    結果の XML 文書に stmt_text および comp_env_desc データを含めるか、または除外します。 これを使用すると、文書のこのような比較的大きい部分が不要な場合に、それらを除外できます (例えば、フォーマット設定された行ベースの出力を戻す MON_FORMAT_XML_* 表関数に入力を提供するために XML 文書を使用する場合)。 この引数タグを指定しない場合、デフォルトでは stmt_text および comp_env_desc データが含まれます。

それぞれの入力引数は一度だけ指定できます。 検索引数タグは小文字で指定する必要があります。

member
この関数を呼び出すときに現在接続されているデータベースと同じインスタンス内の有効なメンバーを指定する、タイプ INTEGER のオプション入力引数。現行のデータベース・メンバーの場合は -1、すべてのデータベース・メンバーの場合は -2 を指定します。 NULL 値を指定すると、-1 が設定されます。

許可

MON_GET_PKG_CACHE_STMT_DETAILS 関数に対する EXECUTE 特権。

最初の例は、パッケージ・キャッシュを調査して、既に読み取った (および戻した) 行数の多い上位 10 個のステートメントを選ぶ方法を示しています。 さらに、これらの各ステートメントの実行に費やされた時間の累計が結果に示されます (STMT_EXEC_TIME 出力列)。

SELECT SUBSTR(DETMETRICS.STMT_TEXT, 1, 40) STMT_TEXT,
       DETMETRICS.ROWS_RETURNED, 
       DETMETRICS.STMT_EXEC_TIME   
FROM TABLE(MON_GET_PKG_CACHE_STMT_DETAILS(CAST(NULL AS CHAR(1)),
    CAST(NULL AS VARCHAR(32) FOR BIT DATA), 
    CAST(NULL AS CLOB(1K)), -1)) AS STMT_METRICS,
    XMLTABLE (XMLNAMESPACES( DEFAULT 'http://www.ibm.com/xmlns/prod/db2/mon'),
       '$DETMETRICS/db2_pkg_cache_stmt_details' PASSING 
    XMLPARSE(DOCUMENT STMT_METRICS.DETAILS) as "DETMETRICS"
    COLUMNS "STMT_TEXT" CLOB PATH 'stmt_text', 
        "ROWS_RETURNED" BIGINT PATH 'activity_metrics/rows_returned',
        "STMT_EXEC_TIME" BIGINT PATH 'activity_metrics/stmt_exec_time'
    ) AS DETMETRICS
ORDER BY rows_returned DESC
FETCH FIRST 10 ROWS ONLY

以下は、この照会の出力例です。

STMT_TEXT                                ROWS_RETURNED STMT_EXEC_TIME
---------------------------------------- ------------- --------------
SELECT CREATOR, NAME, CTIME FROM SYSIBM.           134            38
SELECT SUBSTR(DETMETRICS.STMT_TEXT, 1, 4            44           336
SELECT SUBSTR(DETMETRICS.STMT_TEXT, 1, 4            10           333
SELECT COLNAME, TYPENAME FROM  SYSCAT.CO            10             6
SELECT SUBSTR(DETMETRICS.STMT_TEXT, 1, 4            10           334
SELECT TRIGNAME FROM  SYSCAT.TRIGGERS WH             8             1
SELECT COUNT(*) FROM SYSCAT.TABLESPACES              2             0
SELECT POLICY FROM SYSTOOLS.POLICY WHERE             1             0
CALL SYSPROC.POLICY_INSTALL ('I','DB2Tab             1            62
CALL SYSPROC.POLICY_INSTALL ('I','DB2Tab             1            64

  10 record(s) selected.

2 番目の例は、実行中にロックを待機した動的 SQL ステートメントに関して、実行の数、ロック待機の数、およびロック待機ごとに費やされた平均時間を示します。 出力にはパッケージ・キャッシュ項目の存続期間にわたって累算された値が示されますが、(modified_within 引数タグを 1 に設定することで) 最近 1 分以内に実行されたステートメントの情報に限定します。 ステートメントの詳細情報 (stmt_text および comp_env_desc データ) は不要であり、レポートの生成処理でのコストが高いため、(stmt_details 引数タグを false に設定することにより) 照会ではこれらが除外されます。

SELECT NUM_EXEC_WITH_METRICS, LOCK_WAITS, 
  (LOCK_WAIT_TIME / LOCK_WAITS) AVG_LOCK_WAIT_TIME
FROM TABLE(MON_GET_PKG_CACHE_STMT_DETAILS('D', CAST(NULL
   AS VARCHAR(32) FOR BIT DATA), 
   CLOB(
      '<modified_within>1</modified_within><stmt_details>false</stmt_details>')
        , -1))
   AS STMT_METRICS, 
   XMLTABLE (XMLNAMESPACES( DEFAULT 'http://www.ibm.com/xmlns/prod/db2/mon'),
      '$DETMETRICS/db2_pkg_cache_stmt_details' PASSING 
   XMLPARSE(DOCUMENT STMT_METRICS.DETAILS) as "DETMETRICS" 
   COLUMNS "NUM_EXEC_WITH_METRICS" BIGINT PATH 'num_exec_with_metrics',
      "LOCK_WAITS" BIGINT PATH 'lock_waits',          
      "LOCK_WAIT_TIME" BIGINT PATH 'activity_metrics/lock_wait_time'
   ) AS DETMETRICS 
WHERE LOCK_WAITS <> 0 
ORDER BY AVG_LOCK_WAIT_TIME DESC

以下は、この照会の出力例です。

NUM_EXEC_WITH_METRICS LOCK_WAITS           AVG_LOCK_WAIT_TIME       
--------------------- -------------------- --------------------
                    4                    2                  139
                    9                    3                   90

使用上の注意

この関数によって戻されるメトリックは、パッケージ・キャッシュ内のステートメントに関するすべてのメトリックの累計を表します。 ステートメント・メトリックは、アクティビティー完了時にパッケージ・キャッシュにロールアップされます。

DETAILS 列に戻される XML 文書のスキーマは、ファイル sqllib/misc/DB2MonRoutines.xsd で入手できます。 詳細は、ファイル sqllib/misc/DB2MonCommon.xsd 内にあります。

戻される情報

表 1. MON_GET_PKG_CACHE_STMT_DETAILS で戻される情報
列名 データ・タイプ 説明または対応するモニター・エレメント
MEMBER SMALLINT member - データベース・メンバー
SECTION_TYPE CHAR(1) section_type - セクション・タイプ標識
EXECUTABLE_ID VARCHAR(32) FOR BIT DATA executable_id - 実行可能 ID
DETAILS BLOB(8M) 作業単位についての詳細メトリックを含む XML 文書。エレメントの説明については、本書の表 2を参照してください。
表 2. MON_GET_PKG_CACHE_STMT_DETAILS で戻される詳細メトリック
エレメント名 データ・タイプ 説明
member xs:short member - データベース・メンバー
valid xs:string(1) valid - セクション妥当性検査標識
executable_id xs:hexBinary(32) executable_id - 実行可能 ID
section_type xs:string(1) section_type - セクション・タイプ標識
num_executions xs:nonNegativeInteger num_executions - ステートメント実行回数
num_exec_with_metrics xs:nonNegativeInteger num_exec_with_metrics - メトリック収集を伴う実行数
prep_time xs:nonNegativeInteger prep_time - 準備時間。PREP_TIME は、動的 SQL ステートメントでのみ有効であることに注意してください。静的 SQL ステートメントの場合、PREP_TIME は 0 としてレポートされます。
effective_isolation xs:string(2) effective_isolation - 有効な分離。これは、セクションで有効な分離値です。コンパイル時に最初に要求されたものとは異なる可能性があります。
stmt_pkg_cache_id xs:long stmt_pkgcache_id - ステートメント・パッケージ・キャッシュ ID
query_cost_estimate xs:long query_cost_estimate - 照会コストの見積もり
stmt_type_id xs:string stmt_type_id - ステートメント・タイプ ID
insert_timestamp xs:dateTime insert_timestamp - ステートメント挿入タイム・スタンプ
last_metrics_update xs:dateTime last_metrics_update - メトリックの最終更新タイム・スタンプ
package_name xs:string(128) package_name - パッケージ名。この出力は、静的 SQL ステートメントでのみ有効です。 ステートメントが動的である場合、NULL 値が戻されます。
package_schema xs:string(128) package_schema - パッケージ・スキーマ。この出力は、静的 SQL ステートメントでのみ有効です。 ステートメントが動的である場合、NULL 値が戻されます。
package_version_id xs:string(64) package_version_id - パッケージ・バージョン。この出力は、静的 SQL ステートメントでのみ有効です。 ステートメントが動的であるか、または静的ステートメントのパッケージ・バージョンを指定しなかった場合には、このエレメントは生成されません。 パッケージの作成時にパッケージのバージョン ID を指定しなかった場合には、静的ステートメントに対して空ストリングが戻されます。
section_number xs:short section_number - セクション番号。ステートメントが動的である場合には、このエレメントは生成されません。
stmt_text xs:string(2097152) stmt_text - SQL 動的ステートメント・テキスト
comp_env_desc xs:hexBinary(10240) comp_env_desc - コンパイル環境ハンドル。既存の COMPILATION_ENV 表関数を使用して、必要に応じて特定のステートメントの詳細なコンパイル環境を取得できます。
wlm_queue_time_total xs:long wlm_queue_time_total - ワークロード・マネージャー合計キュー時間
wlm_queue_assignments_total xs:long wlm_queue_assignments_total - ワークロード・マネージャー合計キュー割り当て数
fcm_tq_recv_wait_time xs:long fcm_tq_recv_wait_time - FCM 表キューの受信待ち時間
fcm_message_recv_wait_time xs:long fcm_message_recv_wait_time - FCM メッセージの受信待機時間
fcm_tq_send_wait_time xs:long fcm_tq_send_wait_time - FCM 表キューの送信待ち時間
fcm_message_send_wait_time xs:long fcm_message_send_wait_time - FCM メッセージ送信待ち時間
lock_wait_time xs:long lock_wait_time - ロック待機中の時間
lock_waits xs:long lock_waits - ロック待機数
direct_read_time xs:long direct_read_time - 直接読み取り時間
direct_read_reqs xs:long direct_read_reqs - 直接読み取り要求
direct_write_time xs:long direct_write_time - 直接書き込み時間
direct_write_reqs xs:long direct_write_reqs - 直接書き込み要求
log_buffer_wait_time xs:long log_buffer_wait_time - ログ・バッファー待ち時間
num_log_buffer_full xs:long num_log_buffer_full - フル・ログ・バッファーの回数
log_disk_wait_time xs:long log_disk_wait_time - ログ・ディスク待機時間
log_disk_waits_total xs:long log_disk_waits_total - ログ・ディスク待機の合計
pool_write_time xs:long pool_write_time - バッファー・プール物理書き込み時間の合計
pool_read_time xs:long pool_read_time - バッファー・プール物理読み取り時間の合計
audit_file_write_wait_time xs:long audit_file_write_wait_time - 監査ファイル書き込み待機時間
audit_file_writes_total xs:long audit_file_writes_total - 書き込まれた監査ファイルの合計数
audit_subsystem_wait_time xs:long audit_subsystem_wait_time - 監査サブシステム待機時間
audit_subsystem_waits_total xs:long audit_subsystem_waits_total - 監査サブシステム待機の合計
diaglog_write_wait_time xs:long diaglog_write_wait_time - 診断ログ・ファイルの書き込み待機時間
diaglog_writes_total xs:long diaglog_writes_total - 診断ログ・ファイル書き込みの合計
fcm_send_wait_time xs:long fcm_send_wait_time - FCM 送信待ち時間
fcm_recv_wait_time xs:long fcm_recv_wait_time - FCM 受信待機時間
total_act_wait_time xs:long total_act_wait_time - 合計アクティビティー待機時間
total_section_sort_proc_time xs:long total_section_sort_proc_time - セクション・ソート処理時間合計
total_section_sort_time xs:long total_section_sort_time - セクション・ソート時間合計
total_section_sorts xs:long total_section_sorts - セクション・ソート合計
total_act_time xs:long total_act_time - 合計アクティビティー時間
rows_read xs:long rows_read - 読み取り行数
rows_modified xs:long rows_modified - 変更された行数
pool_data_l_reads xs:long pool_data_l_reads - バッファー・プール・データの論理読み取り
pool_index_l_reads xs:long pool_index_l_reads - バッファー・プール索引の論理読み取り
pool_temp_data_l_reads xs:long pool_temp_data_l_reads - バッファー・プール一時データの論理読み取り
pool_temp_index_l_reads xs:long pool_temp_index_l_reads - バッファー・プール一時索引の論理読み取り
total_cpu_time xs:long total_cpu_time - 合計 CPU 時間
pool_data_p_reads xs:long pool_data_p_reads - バッファー・プール・データの物理読み取り
pool_temp_data_p_reads xs:long pool_temp_data_p_reads - バッファー・プール一時データの物理読み取り
pool_xda_p_reads xs:long pool_xda_p_reads - バッファー・プール XDA データの物理読み取り
pool_temp_xda_p_reads xs:long pool_temp_xda_p_reads - バッファー・プール一時 XDA データの物理読み取り
pool_index_p_reads xs:long pool_index_p_reads - バッファー・プール索引の物理読み取り
pool_temp_index_p_reads xs:long pool_temp_index_p_reads - バッファー・プール一時索引の物理読み取り
pool_data_writes xs:long pool_data_writes - バッファー・プールへのデータの書き込み
pool_xda_writes xs:long pool_xda_writes - バッファー・プール XDA データの書き込み
pool_index_writes xs:long pool_index_writes - バッファー・プール索引の書き込み
direct_reads xs:long direct_reads - データベースからの直接読み取り
direct_writes xs:long direct_writes - データベースへの直接書き込み
rows_returned xs:long rows_returned - 戻り行数
deadlocks xs:long deadlocks - デッドロック検出数
lock_timeouts xs:long lock_timeouts - ロック・タイムアウト数
lock_escals xs:long lock_escals - ロック・エスカレーション数
fcm_sends_total xs:long fcm_sends_total - FCM 合計送信数
fcm_recvs_total xs:long fcm_recvs_total - FCM 合計受信数
fcm_send_volume xs:long fcm_send_volume - FCM 送信ボリューム
fcm_recv_volume xs:long fcm_recv_volume - FCM 受信ボリューム
fcm_message_sends_total xs:long fcm_message_sends_total - FCM メッセージ合計送信数
fcm_message_recvs_total xs:long fcm_message_recvs_total - FCM メッセージ合計受信数
fcm_message_send_volume xs:long fcm_message_send_volume - FCM メッセージ送信ボリューム
fcm_message_recv_volume xs:long fcm_message_recv_volume - FCM メッセージ受信ボリューム
fcm_tq_sends_total xs:long fcm_tq_sends_total - FCM 表キューの合計送信数
fcm_tq_recvs_total xs:long fcm_tq_recvs_total - FCM 表キューの合計受信数
fcm_tq_send_volume xs:long fcm_tq_send_volume - FCM 表キューの送信ボリューム
fcm_tq_recv_volume xs:long fcm_tq_recv_volume - FCM 表キューの受信ボリューム
tq_tot_send_spills xs:long tq_tot_send_spills - オーバーフローした表キュー・バッファーの合計数
post_threshold_sorts xs:long post_threshold_sorts - ポストしきい値ソート
post_shrthreshold_sorts xs:long post_shrthreshold_sorts - ポスト共有しきい値ソート
sort_overflows xs:long sort_overflows - ソート・オーバーフロー
audit_events_total xs:long audit_events_total - 監査イベント合計数
total_sorts xs:long total_sorts - ソート合計
stmt_exec_time xs:long stmt_exec_time - ステートメントの実行時間
coord_stmt_exec_time xs:long coord_stmt_exec_time - コーディネーター・エージェントによるステートメントの実行時間

total_routine_non_
   sect_proc_time

xs:long total_routine_non_sect_proc_time - 非セクション処理時間
total_routine_non_sect_time xs:long total_routine_non_sect_time - 非セクション・ルーチン実行時間
total_section_proc_time xs:long total_section_proc_time - セクション処理時間の合計
total_section_time xs:long total_section_time - セクション時間の合計
total_app_section_executions xs:long total_app_section_executions - セクション実行の合計回数

total_routine_user_
  code_proc_time

xs:long total_routine_user_code_proc_time - ルーチン・ユーザー・コード処理時間の合計
total_routine_user_code_time xs:long total_routine_user_code_time - ルーチン・ユーザー・コード時間の合計
total_routine_time xs:long total_routine_time - ルーチン時間の合計
num_coord_exec xs:long num_coord_exec - コーディネーター・エージェントによる実行数
num_coord_exec_with_metrics xs:long num_coord_exec_with_metrics - メトリックを伴うコーディネーター・エージェントによる実行数
thresh_violations xs:long thresh_violations - しきい値違反の回数
num_lw_thresh_exceeded xs:long num_lw_thresh_exceeded - しきい値を超えた回数
total_routine_invocations xs:long total_routine_invocations - ルーチン呼び出しの合計回数
ida_send_wait_time xs:nonNegativeInteger ida_send_wait_time - データ送信の待機に費やされた時間
ida_sends_total xs:nonNegativeInteger ida_sends_total - データの送信回数
ida_send_volume xs:nonNegativeInteger ida_send_volume - 送信したデータの合計量
ida_recv_volume xs:nonNegativeInteger ida_recv_volume - 受信したデータの合計量
ida_recv_wait_time xs:nonNegativeInteger ida_recv_wait_time - データ受信の待機に費やされた時間
ida_recvs_total xs:nonNegativeInteger ida_recvs_total - データの受信回数