実行可能リスト情報
作業単位情報を収集する場合、 オプションで、各作業単位の一部として実行されるステートメントの実行可能 ID のリストも収集することができます。
- CREATE WORKLOAD または ALTER WORKLOAD ステートメントの COLLECT UNIT OF WORK DATA 節に EXECUTABLE LIST オプションを使用して、 特定のワークロードについての情報を収集します。 このステートメントで指定したワークロードの下で実行された作業単位についての情報が、 実行可能 ID を含め、アクティブな作業単位 (UOW) イベント・モニターに送られます。
- 構成パラメーターを使用して、データ・サーバーで実行されたすべての作業単位についての情報を、 実行可能情報を含め、アクティブな作業単位イベント・モニターに送ります。 実行可能 ID 情報を収集するには、mon_uow_data 構成パラメーターに BASE を設定し、mon_uow_execlist 構成パラメーターに ON を設定します。
- 作業単位レベル
- executable_list_size
- ある特定の作業単位の実行可能 ID リスト内にある項目の数
- executable_list_truncated
- リストが切り捨てられたかどうかを示す YES または NO の値。処理中に実行可能リスト全体を格納するために十分なメモリーがない場合、 リストは切り捨てられる可能性があります。
- 実行可能 ID リスト
- executable_id (executable_id 実行可能 ID : モニター・エレメント)
- 実行された SQL ステートメント・セクションを一意的に識別する、データ・サーバーで生成された不透明なバイナリー・トークン。
- num_executions (num_executions - ステートメント実行回数 : モニター・エレメント)
- SQL ステートメントが実行された回数。
- rows_read (rows_read - 読み取り行数 : モニター・エレメント)
- 表から読み取られた行の数。
- total_cpu_time (total_cpu_time - 合計 CPU 時間 : モニター・エレメント)
- データベース内で使用された CPU 時間の合計。 これは、ユーザーとシステムの両方の CPU 時間の合計を表します。この値の単位はマイクロ秒です。
- total_act_time (total_act_time - 合計アクティビティー時間 : モニター・エレメント)
- アクティビティーの実行にかかった時間の合計。 この値の単位はミリ秒です。
- total_act_wait_time (total_act_wait_time - 合計アクティビティー待機時間 : モニター・エレメント)
- アクティビティーの処理中に、データベース・サーバー内での待機にかかった合計時間。値の単位はミリ秒です。
- lock_wait_time (lock_wait_time - ロック待機中の時間 : モニター・エレメント)
- ロック待機に費やされた合計経過時間。 値はミリ秒単位で示されます。
- lock_waits (lock_waits - ロック待機数 : モニター・エレメント)
- アプリケーションまたは接続がロックを待機した合計回数。
- total_sorts (total_sorts - ソート合計 : モニター・エレメント)
- 実行されたソートの合計数。
- post_threshold_sorts (post_threshold_sorts - ポストしきい値ソート : モニター・エレメント)
- ソート・ヒープしきい値に達した後でヒープを要求したソートの数。
- post_shrthreshold_sorts (post_shrthreshold_sorts - ポスト共有しきい値ソート : モニター・エレメント)
- ソート・メモリー・スロットル・アルゴリズムによってスロットルして戻されたソートの合計数。スロットルされたソートとは、ソート・メモリー・マネージャーから要求されたメモリー よりも少ないメモリーが付与されたソートです。
- sort_overflows (sort_overflows - ソート・オーバーフロー : モニター・エレメント)
- ソート・ヒープを使い果たし、 一時記憶用のディスク・スペースが必要になった可能性のあるソートの合計数。
UE 表への実行リストの書き込み
UOW イベント・モニターで基本的なデータと実行可能 ID リスト・データを収集する場合、 UE 表には少なくとも 2 つの別々のレコードが書き込まれます。 最初のレコードには、基本的な UOW データを含む UOW イベントに関する情報が入っています。2 つ目のレコードには、 実行可能 ID リストのデータを含む UOW_EXEC_LIST イベントです。 この 2 つ目のレコードは、複数のレコードで構成される場合があります。 これは、単一の UOW にユニークな実行可能 ID が多数存在する場合があるためです。 各イベントが、使用可能なインライン LOB スペースに収まるように、 これらのレコードは別々の行として UE 表に書き込まれます。UE 表のフォーマット用インターフェースを使用して、これらのイベントの情報をマージすることができます。実行可能 ID リストを収集しない場合、 関連付けられたレコードが作成されることはありません。表に行は含まれません。
通常の表への実行リストの書き込み
イベント・モニターの出力に 通常の表を使用する場合、 実行可能リスト情報は、uow_executable_list 論理データ・グループ の一部としてキャプチャーされます。 各作業単位が完了すると、1 つ以上の行が UOW_EXECUTABLE_LIST_evmon_name 表に追加されます。 この表には、論理データ・グループ内のモニター・エレメントごとに 1 つの列があります。 この表に追加される行数は、作業単位の一部として実行された固有な実行可能 ID の数に依存します。
実行可能リストの出力
作業単位イベント・モニターが UE 表に書き込む場合、 イベント・モニターは、実行情報を収集すると 2 つのレコードを UE 表に書き込みます。 UE 表のデータを表示するための各インターフェースは、 2 つの UE 表レコードに含まれている情報を表示するメカニズムを備えています。 db2evmonfmt ツールは各レコードの情報を 1 つのレポートに結合します。EVMON_FORMAT_UE_TO_TABLES プロシージャーを使用すると、 結合可能なリレーショナル表が生成されます。 実行可能リスト情報は、表 UOW_EXECUTABLE_LIST に入っています。 EVMON_FORMAT_UE_TO_XML 表関数は、 両方のレコードの情報を含む 1 つの XML 文書を生成します。詳しくは、作業単位イベント・モニターによりキャプチャーされたイベント・データへのアクセスを参照してください。
イベント・モニターがリレーショナル表に直接書き込む場合、 実行可能リスト情報は、表 UOW_EXECUTABLE_LIST_evmon に書き込まれます。
パーティション・データベース環境の場合、 実行可能 ID リストは、コーディネーター・エージェント・メンバーやデータ・メンバーを含め、メンバーごとに生成されます。 Db2® pureScale® 環境の場合、 リストはコーディネーター・メンバーから生成されます。これは、 非パーティション構成の場合と似ています。
例
以下のサンプルの情報は、 1 つの UOW 内で 5 つの異なる SQL ステートメント・セクションを実行するアプリケーションについて収集されたものです。この出力は、サンプルの列を使用して論理的な表示内容を示しています。 実際の出力は、実行するツールまたは照会によって異なります。EXECUTABLE_ID NUM_EXECUTIONS ROWS_READ TOTAL_CPU_TIME
------------------------------------ -------------- --------- --------------
x'01007A00000020020081126171554951791' 1 23456 76888
x'01007900000020020081126171533551120' 55 345 768
x'01007C00000020020081126171720728997' 234 67 232
x'01007B00000020020081126171657272914' 3456 347 1223
x'01007D00000020020081126172409987719' 22242 2244 432444この例では、
実行可能 ID リスト内に、実行された 5 つの異なるセクションに対応する
5 つのエントリーがあります。5 つのセクションの実行回数は、
NUM_EXECUTIONS 列に示されているようにそれぞれ異なりますが、
ユニークなセクションごとにエントリーが 1 つのみあります。最初の行は、
1 回の実行だけで過度な CPU 時間が消費されているため、
問題のあるアクティビティー・ステートメントを示している可能性があります。