MONREPORT モジュールを使用して生成されるレポート

MONREPORT モジュールは、SQL のパフォーマンス上の問題をトラブルシューティングするために使用できる モニター・データのテキスト・レポートを生成します。

MONREPORT モジュールを使用して、以下のレポートを生成できます。

表 1. MONREPORT モジュールを使用して生成されるレポートのリスト
レポート名 レポートを作成するプロシージャー 主なデータ・ソース / 表関数
サマリー・レポート MONREPORT.DBSUMMARY MON_GET_SERVICE_SUBCLASS および MON_GET_CONNECTION と MON_GET_WORKLOAD から選択された詳細
接続レポート MONREPORT.CONNECTION MON_GET_CONNECTION
現行アプリケーション・レポート MONREPORT.CURRENTAPPS MON_GET_CONNECTION、 MON_GET_UNIT_OF_WORK、 WLM_GET_SERVICE_CLASS_AGENTS、 WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES のフィールドを含む
現行 SQL レポート MONREPORT.CURRENTSQL MON_GET_PKG_CACHE_STMT (WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES 表関数から取得された executable_id に関するもの)
パッケージ・キャッシュ・レポート MONREPORT.PKGCACHE MON_GET_PKG_CACHE_STMT
現行のロック待機のレポート MONREPORT.LOCKWAIT 大部分は MON_GET_APPL_LOCKWAIT からのデータ。 他は MON_GET_CONNECTION、WLM_GET_SERVICE_CLASS_AGENTS、 WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES、 MON_GET_PKG_CACHE_STMT、 MON_GET_TABLE からのデータ。

ほとんどのレポートは、そのレポートの各項目に関するキーとなる情報を 1 行で表すサマリー・セクションで始まります。 例えば、 接続レポートには、各接続に関する 1 行のサマリーがあります。 レポートの本文は、そのサマリーの各項目に関する詳細なセクションで構成されます。

レポート内の各メトリックは、 基礎となるモニター・エレメント名 (例えば、CLIENT_IDLE_WAIT_TIME = 44) でラベルされています。メトリックが何を表しているか調べるには、インフォメーション・センターでモニター・エレメント名 を検索してください。

初期診断のためのレポート

これらのレポートの重要な使用目的は、 SQL のパフォーマンス低下をトラブルシューティングすることです。 各レポートは、特定の診断項目に関して結果を返すように設計されています。 初期診断をサポートするレポートもあれば、 特定のタイプの問題について、その後の詳細な診断をサポートするレポートもあります。

初期診断では以下が行われます。
  • スローダウンする処理の状況または段階が明らかになるまで問題を絞り込むことによって、 問題のカテゴリーを特定します。
  • 問題に関与している SQL ステートメントを特定し、さらに分析するためにその SQL ステートメントに関する情報を 収集します。
表 2. 初期診断に適した MONREPORT モジュール・レポート
プロシージャー名 提供される情報および使用方法

MONREPORT.DBSUMMARY

第 1 部: システム・パフォーマンス

サマリー・レポートの第 1 部では、データベース全体から集約された処理の さまざまな状況に関するモニター・データが提供されます。

この情報は、スローダウンする処理の状況または段階 を明らかにするのに有用です。例えば、
  • 問題はデータ・サーバー内にあるのか、外にあるのか。
  • コンピューターのリソースにボトルネックがあるのか。
  • 要求が待ち状態になっているのか。その場合、どのリソースを待っているのか。
  • スローダウンは、コンポーネントを処理する特定のデータ・サーバーで発生しているのか。

MONREPORT.DBSUMMARY

第 2 部: アプリケーションの パフォーマンス

サマリー・レポートの第 2 部では、 接続、ワークロード、およびサービス・クラスのそれぞれについてのキーとなるパフォーマンス標識が 提供されます。

この情報は、スローダウンに関与しているアプリケーション要求の範囲 を明らかにするのに有用です。例えば、
  • このスローダウンは、大部分またはすべてのワークロードに影響を与えるシステム全体のスローダウンであるのか。
  • このスローダウンは、特定の接続、DB2® ワークロード、または DB2 サービス・クラスなど、特定のソースから 実行される SQL ステートメントに限定されているか。

MONREPORT.DBSUMMARY

第 3 部: メンバー・レベルの情報

サマリー・レポートの第 3 部では、 各メンバーについてのキーとなるパフォーマンス標識が 提供されます。

この情報は、スローダウンが 1 つあるいは いくつかのメンバーに限定されているのかどうかを特定するのに有用です。

MONREPORT.CURRENTSQL

現行 SQL レポートでは、 現在実行中のステートメントの情報が、 上位 N 個のアクティビティーを示す複数のリストという形式で提供されます。ステートメントは、次のようなさまざまなメトリックでランク付けされます: 処理リソース、処理した行数、 直接読み取り数、および直接書き込み数

この情報は、スローダウンが 1 つあるいは いくつかの SQL ステートメントに限定されているのかどうかを特定するのに有用です。 スローダウンが 1 つあるいはいくつかの SQL ステートメントに限定されている場合、 それらのステートメントは、このレポートの上位ステートメントに表示されると考えられます。

MONREPORT.PKGCACHE
パッケージ・キャッシュ・レポートでは、 最近実行されてパッケージ・キャッシュに保管されているステートメントに関する情報が提供されます。 このレポートには、複数のサマリーがあり、それぞれのサマリーで上位 N 個のアクティビティーがリストされます。アクティビティーは、以下のようなモニター・エレメントでランク付けされます

このレポートには、上記の各メトリックについてのサマリー、および 各実行についての報告が含まれます。

この情報は、スローダウンが 1 つあるいは いくつかの SQL ステートメントに限定されているのかどうかを特定するのに有用です。 その場合、それらのステートメントは、このレポートのトップに表示されると考えられます。 実行単位の情報は、最もコストの高いステートメントを特定するのに役立ちます。 一方、すべての実行について集計された情報は、ステートメントのコストおよび実行頻度を考慮した上で、 累積的にシステムに対して最も影響を与えるステートメントを 特定するのに役立ちます。

MONREPORT.CURRENTAPPS

現行アプリケーション・レポートでは、 作業単位、エージェント、およびアクティビティーの現在の処理状態が示されます。 このレポートは、現在の接続数、アクティビティー数を示すサマリー・セクションで始まり、 現在の作業単位についてワークロード・オカレンス状態別に示すサマリーなどの、 一連のサマリーが後に続きます。 このレポートの本文は、接続ごとに、接続の詳細を示す 1 つのセクションで構成されます。

この情報は、 現在システムで実行中のすべての処理を調べるのに有用です。 これによって、問題のカテゴリーを特定する可能性のあるパターンを調べることができます。

詳細な診断のためのレポート

初期診断の完了後、場合によっては、 初期診断の段階で特定した問題のカテゴリーについて、 特化した、または詳細なトラブルシューティング分析を続けて行う必要があります。

表 3. 詳細な診断に適した MONREPORT モジュール・レポート
プロシージャー名 提供される情報および使用方法
MONREPORT.CONNECTION

MONREPORT.DBSUMMARY レポートで、 特定の接続から実行される SQL ステートメントにスローダウンが限定されていることが示された場合、 その接続に関する詳細な情報を確認します。

このレポートには、 MONREPORT.DBSUMMARY レポートの第 1 部と同じメトリックが含まれますが、このレポートでは、接続ごとにこの情報を示します。

MONREPORT.LOCKWAIT

初期診断で確認したレポートに、 ロック待機の問題が示された場合、 現在進行中の各ロック待機に関する詳細な情報を確認します。

この情報には、ロック保有者とロック要求者の詳細情報、および 保有されているロックと要求されたロックの特性が含まれます。