MON_GET_PKG_CACHE_STMT_DETAILS 表関数は、1 つ以上のパッケージ・キャッシュ項目に関する詳細メトリックを戻します。
MON_GET_PKG_CACHE_STMT_DETAILS 表関数で戻されるメトリックは、パッケージ・キャッシュ内のステートメントに関するすべてのメトリックの累計を表します。 ステートメント・メトリックは、アクティビティー完了時にパッケージ・キャッシュにロールアップされます。
>>-MON_GET_PKG_CACHE_STMT_DETAILS--(--section_type--,-----------> >--executable_id--,--search_args--,--member--)-----------------><
スキーマは SYSPROC です。
'<modified_within>5</modified_within><update_boundary_time>myPkgEvmon
</update_boundary_time>'
現在までの X 分間にキャッシュに挿入された、または実行されたステートメント項目だけを戻します (X は正の整数値)。 引数が指定されない場合、キャッシュ内のすべての項目が戻されます。
evmon_name で指定されたパッケージ・キャッシュ・イベント・モニターに関して、イベント・モニター境界タイム・スタンプを現在時刻に更新します。 このイベント・モニターの WHERE 節で出力基準として where updated_since_boundary_time が指定される場合、今後にメトリックが更新されるパッケージ・キャッシュ項目だけが、パッケージ・キャッシュからの退去時にキャプチャーされます。 指定されたパッケージ・キャッシュ・イベント・モニターがコマンド発行時にアクティブである場合にのみ、この操作が効果を及ぼします。
結果の XML 文書に stmt_text および comp_env_desc データを含めるか、または除外します。 これを使用すると、文書のこのような比較的大きい部分が不要な場合に、それらを除外できます (例えば、フォーマット設定された行ベースの出力を戻す MON_FORMAT_XML_* 表関数に入力を提供するために XML 文書を使用する場合)。 この引数タグを指定しない場合、デフォルトでは stmt_text および comp_env_desc データが含まれます。
それぞれの入力引数は一度だけ指定できます。 検索引数タグは小文字で指定する必要があります。
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 内にあります。
| 列名 | データ・タイプ | 説明または対応するモニター・エレメント |
|---|---|---|
| MEMBER | SMALLINT | member - データベース・メンバー |
| SECTION_TYPE | CHAR(1) | section_type - セクション・タイプ標識 |
| EXECUTABLE_ID | VARCHAR(32) FOR BIT DATA | executable_id - 実行可能 ID |
| DETAILS | BLOB(8M) | 作業単位についての詳細メトリックを含む XML 文書。エレメントの説明については、本書の表 2を参照してください。 |
| エレメント名 | データ・タイプ | 説明 |
|---|---|---|
| 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_ |
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_ |
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 - データの受信回数 |