システム全体のどこで時間が費やされているかを調べる
消費時間モニター・エレメントを使用して、システムのどこで時間が費やされているかを可視化することができます。 消費時間モニター・エレメントを使用して、特定の作業単位、サービス・サブクラス、ワークロード、または接続について報告できます。
このタスクについて
注 :
- 照会の出力で示される値は例示のみを目的としており、ご使用のシステムで表示される可能性のあるものを代表していると解釈すべきではありません。
- このタスクでは、特定の消費時間モニター・エレメントを検索する方法を示します。 バージョン 9.7 フィックスパック 1 で導入された新しいフォーマット関数を使用することにより、特定の基準を満たす消費時間モニター・エレメントを検索することもできます。例えば、値がゼロ以外のもの、指定した値の一定範囲に入っているもの、または上位 n 個のモニター・エレメント (例えば上位 5 つの待機時間) などを検索できます。 これらの関数の機能を、例 4 で示しています。
手順
例
- 例 1: 全体要求時間に対する待機に費やした時間の全接続平均比率を割り出す。
- この例は前のものと似ていますが、待機時間の平均パーセンテージの計算が以下の SQL 内で行われます。
WITH PCTWAIT AS ( SELECT SUM(TOTAL_WAIT_TIME)AS WAIT_TIME, SUM(TOTAL_RQST_TIME)AS RQST_TIME FROM TABLE(MON_GET_CONNECTION(NULL,NULL)) AS METRICS) SELECT WAIT_TIME, RQST_TIME, CASE WHEN RQST_TIME > 0 THEN DEC((FLOAT(WAIT_TIME))/FLOAT(RQST_TIME) * 100,5,2) ELSE NULL END AS WAIT_PCT FROM PCTWAITこの照会の実行結果は、次のようなものになります。WAIT_TIME RQST_TIME WAIT_PCT -------------------- -------------------- -------- 1515 2439 62.11 1 record(s) selected. - 例 2: 特定のサービス・サブクラスについて、合計待機時間と選択したコンポーネント処理時間を比較する。
- この例は、特定のタイプのコンポーネント処理で費やされた時間と待機に費やされた時間を比較する方法を示しています。
SELECT SUM(TOTAL_WAIT_TIME) AS WAIT, SUM(TOTAL_COMPILE_PROC_TIME) AS COMPILE, SUM(TOTAL_IMPLICIT_COMPILE_PROC_TIME) AS IMP_COMPILE, SUM(TOTAL_SECTION_PROC_TIME) AS SECTION, SUM(TOTAL_COMMIT_PROC_TIME) AS COMMIT, SUM(TOTAL_REORG_PROC_TIME) AS REORG, SUM(TOTAL_RUNSTATS_PROC_TIME) AS RUNSTATS, SUM(TOTAL_ROLLBACK_PROC_TIME) AS ROLLBACK, SUM(TOTAL_LOAD_PROC_TIME) AS LOAD FROM TABLE(MON_GET_SERVICE_SUBCLASS( 'SYSDEFAULTUSERCLASS','SYSDEFAULTSUBCLASS',NULL))この照会の結果は、次のようなものになります (表示形式上、照会の出力行が分割されています)。WAIT COMPILE IMP_COMPILE SECTION COMMIT -------------------- -------------------- -------------------- -------------------- -------------------- 611 1931 0 395 15 REORG RUNSTATS ROLLBACK LOAD -------------------- -------------------- -------------------- -------------------- 0 432 18 0 1 record(s) selected.報告された数値を使用して、待機に費やされた時間とさまざまな処理ステージで費やされた時間の相対比較を示す円グラフを構成することもできます (コンポーネント時間 0 は含まれません)。
- 例 3: 合計消費時間と各コンポーネントでの処理時間の比率を表示する。
この例は、処理の各ステージ (コンポーネント) での作業に費やされた時間の概要を、そのコンポーネントで費やされた合計時間に対する相対比較で知る方法を示しています。 次の照会は、特定のコンポーネントで費やされた合計経過時間に対する実際の処理で費やされた時間の比率 (パーセンテージとして表される) を計算します。
この照会は、以下の出力を生成します。WITH PCTPROC AS ( SELECT SUM(TOTAL_SECTION_TIME) AS SECT_TIME, SUM(TOTAL_SECTION_PROC_TIME) AS SECT_PROC_TIME, SUM(TOTAL_COMPILE_TIME) AS COMP_TIME, SUM(TOTAL_COMPILE_PROC_TIME) AS COMP_PROC_TIME, SUM(TOTAL_IMPLICIT_COMPILE_TIME) AS IMP_C_TIME, SUM(TOTAL_IMPLICIT_COMPILE_PROC_TIME) AS IMP_C_PROC_TIME, SUM(TOTAL_COMMIT_TIME) AS COMMIT_TIME, SUM(TOTAL_COMMIT_PROC_TIME) AS COMMIT_PROC_TIME, SUM(TOTAL_ROLLBACK_TIME) AS ROLLBACK_TIME, SUM(TOTAL_ROLLBACK_PROC_TIME) AS ROLLBACK_PROC_TIME, SUM(TOTAL_RUNSTATS_TIME) AS RUNSTATS_TIME, SUM(TOTAL_RUNSTATS_PROC_TIME)AS RUNSTATS_PROC_TIME, SUM(TOTAL_REORG_TIME) AS REORG_TIME, SUM(TOTAL_REORG_PROC_TIME) AS REORG_PROC_TIME, SUM(TOTAL_LOAD_TIME) AS LOAD_TIME, SUM(TOTAL_LOAD_PROC_TIME) AS LOAD_PROC_TIME FROM TABLE(MON_GET_CONNECTION(NULL, -2)) AS METRICS) SELECT CASE WHEN SECT_TIME > 0 THEN DEC((FLOAT(SECT_PROC_TIME) / FLOAT(SECT_TIME)) * 100,5,1) ELSE NULL END AS SECT_PROC_PCT, CASE WHEN COMP_TIME > 0 THEN DEC((FLOAT(COMP_PROC_TIME) / FLOAT(COMP_TIME)) * 100,5,1) ELSE NULL END AS COMPILE_PROC_PCT, CASE WHEN IMP_C_TIME > 0 THEN DEC((FLOAT(IMP_C_PROC_TIME) / FLOAT(IMP_C_TIME)) * 100,5,1) ELSE NULL END AS IMPL_COMPILE_PROC_PCT, CASE WHEN ROLLBACK_TIME > 0 THEN DEC((FLOAT(ROLLBACK_PROC_TIME) / FLOAT(ROLLBACK_TIME)) * 100,5,1) ELSE NULL END AS ROLLBACK_PROC_PCT, CASE WHEN COMMIT_TIME > 0 THEN DEC((FLOAT(COMMIT_PROC_TIME) / FLOAT(COMMIT_TIME)) * 100,5,1) ELSE NULL END AS COMMIT_PROC_PCT, CASE WHEN RUNSTATS_TIME > 0 THEN DEC((FLOAT(RUNSTATS_PROC_TIME) / FLOAT(RUNSTATS_TIME)) * 100,5,1) ELSE NULL END AS RUNSTATS_PROC_PCT, CASE WHEN REORG_TIME > 0 THEN DEC((FLOAT(REORG_PROC_TIME) / FLOAT(REORG_TIME)) * 100,5,1) ELSE NULL END AS REORG_PROC_PCT, CASE WHEN LOAD_TIME > 0 THEN DEC((FLOAT(LOAD_PROC_TIME) / FLOAT(LOAD_TIME)) * 100,5,1) ELSE NULL END AS LOAD_PROC_PCT FROM PCTPROCSECT_PROC_PCT COMPILE_PROC_PCT IMPL_COMPILE_PROC_PCT ROLLBACK_PROC_PCT COMMIT_PROC_PCT RUNSTATS_PROC_PCT REORG_PROC_PCT LOAD_PROC_PCT ------------- ---------------- --------------------- ----------------- --------------- ----------------- -------------- ------------- 57.6 0.1 - 96.9 95.6 0.0 71.1 84.6 1 record(s) selected.このデータのグラフィカル表現は、図 1 に示すようなものになります。図 1. 全体消費時間に対するパーセンテージで表されたコンポーネント処理時間 
- 例 4: 消費時間モニター・エレメントのランキングを表示する。
- これまでの例では、表示されるモニター・エレメントはすべて照会 SQL で明示的に指定されており、照会結果ではそれぞれが独自の列に表示されます。 しかし、調べる消費時間モニター・エレメントが分かっていないときもあります。例えば、上位 10 の待機時間モニター・エレメントを知りたい場合や、ゼロ以外の消費時間モニター・エレメントのみを知りたい場合があります。