モニター・プロシージャーおよび関数

モニター・ルーチンは、「MON」で始まる名前 (例えば MON_GET_SERVICE_SUBCLASS) または 「EVMON」で始まる名前 (例えば EVMON_FORMAT_UE_TO_TABLES) のプロシージャーまたは関数です。

モニター (MON) 表関数の特性

これらのルーチンは、 システムの状況照会やモニター・データ操作に関連したさまざまな機能を実行します。一部のルーチンは、 表形式のデータを返す表関数です。例えば、多数の表関数はモニター・エレメントに対するアクセスを提供します。一部のモニター・ルーチン (特に「EVMON」で始まるもの) はデータの形式を変換します。環境ルーチンや管理ルーチンなどの他の特定のルーチンも、モニター時に関連する情報を返します。

  • 「MON」ルーチンは戦略的に重要であるため、このルーチンの名前は将来のリリースでも変更されません。 ただし、将来のリリースで機能が拡張される場合には、新しい出力列が追加されます。 したがって、組み込みルーチンを使用して情報を取得する照会を発行する場合、SELECT * ... という形式のステートメントは使用しないでください。その代わりに、SELECT ステートメントで結果列を指定します。こうすることで、アプリケーションは結果列の数と、それらが戻される順序を制御することができます。

  • 一部の表関数には 2 つのバージョンがあり、その 1 つの接尾部は _DETAILS になります。 _DETAILS 接尾部のないバージョンは、最も一般的に使用されるデータを戻すリレーショナル SQL インターフェースを提供します。 _DETAILS 接尾部のあるバージョンは、モニター・データに対する XML ベースのアクセスを提供します。
  • モニター表関数によって戻されるメトリックがリセットされることはありません。データベースがアクティブにされる時点で 0 で開始され、データベースが非アクティブ化されるまで継続的に累算されます。
  • ほとんどの表関数と同様に、受信データの対象を単一のオブジェクト (サービス・クラス「A」など) にするか、すべてのオブジェクトにするかを選択できます。
  • ほとんどの表関数と同様に、Db2® pureScale® 環境またはパーティション・データベース環境でこれらの表関数を使用する際には、受信データの対象を単一のメンバーにするか、すべてのメンバーにするかを選択できます。すべてのメンバーに関するデータの受信を選択すると、表関数はメンバーごとに 1 行ずつ戻します。メンバー全体の値を加算して、メンバー全体にわたるモニター・エレメントの値を取得できます。

モニター (MON) 表関数

モニター表関数は、データベース・サーバー上のアプリケーションの理解、調整、およびトラブルシューティングのために使用できるシステムの動作とパフォーマンスを記述するさまざまなモニター・エレメントの集合を返します。これらのエレメントは、アプリケーション応答時間に影響する可能性のあるさまざまなシステム・パフォーマンス標識の集合に関する情報を提供します。関心あるワークロードのサブセットに関するモニター・データを入手することもできます。

例えば、次のようなモニター表関数は、システム・ワークロード全体のさまざまな局面に関して報告します。
  • MON_GET_CONNECTION および MON_GET_CONNECTION_DETAILS
  • MON_GET_SERVICE_SUBCLASS および MON_GET_SERVICE_SUBCLASS_DETAILS
  • MON_GET_UNIT_OF_WORK および MON_GET_UNIT_OF_WORK_DETAILS
  • MON_GET_WORKLOAD および MON_GET_WORKLOAD_DETAILS
  • MON_GET_DATABASE および MON_GET_DATABASE_DETAILS
このほかに、例えば次のような表関数は、特定のタイプのオブジェクトに関するデータを戻します。
  • MON_GET_APPL_LOCKWAIT
  • MON_GET_BUFFERPOOL
  • MON_GET_CONTAINER
  • MON_GET_EXTENDED_LATCH_WAIT
  • MON_GET_INDEX
  • MON_GET_LOCKS
  • MON_GET_PAGE_ACCESS_INFO
  • MON_GET_TABLE
  • MON_GET_TABLESPACE
これらの表関数は、特定のデータ・オブジェクトに関連したパフォーマンスの問題を調査するのに使用します。
サブシステムのモニターには、以下のその他の表関数が役立ちます。
  • MON_GET_FCM
  • MON_GET_FCM_CONNECTION_LIST
  • MON_GET_HADR
  • MON_GET_SERVERLIST
  • MON_GET_TRANSACTION_LOG
さらに別の表関数は、アクティビティーおよびステートメントを調べるのに役立ちます。
  • MON_GET_ROUTINE
  • MON_GET_AGENT
さらに別の表関数は、個々のアクティビティーおよびステートメントの詳細を調べるのに役立ちます。
  • MON_GET_ACTIVITY は、システム上で現在実行中の特定のアクティビティーに関する詳細を戻します。これらの詳細には、一般的なアクティビティー情報 (ステートメント・テキストなど) や一連のメトリックが含まれます。
  • MON_GET_INDEX_USAGE_LIST は、索引に定義されている使用量リストから情報を戻します。
  • MON_GET_TABLE_USAGE_LIST は、表に定義されている使用量リストから情報を戻します。
  • MON_GET_PKG_CACHE_STMT および MON_GET_PKG_CACHE_STMT_DETAILS
さらに、以下の表関数は進捗モニターの役割を果たします。
  • MON_GET_AUTO_MAINT_QUEUE は、オートノミック・コンピューティング・デーモン (db2acd) で実行するために現在キューに入れられている自動保守ジョブすべてに関する情報を戻します。
  • MON_GET_AUTO_RUNSTATS_QUEUE は、現在接続しているデータベースでの自動統計収集によって評価するために現在キューに入れられているオブジェクトすべてに関する情報を戻します。
  • MON_GET_EXTENT_MOVEMENT_STATUS はエクステント移動操作の状況を戻します。
  • MON_GET_REBALANCE_STATUS は、表スペースに対する再平衡化操作の状況を戻します。
  • MON_GET_RTS_RQST は、システム内で保留中のすべてのリアルタイム統計要求と、リアルタイム統計デーモンによって現在処理されている要求のセットに関する情報を戻します。
  • MON_GET_USAGE_LIST_STATUS は、使用量リストの現在の状況を戻します。
MON_FORMAT_ で始まる表関数は、読みやすい行ベースの形式で情報を戻します。 MON_FORMAT_LOCK_NAME はロックの内部バイナリー名を入力として、そのロックに関する詳細情報を戻します。 MON_FORMAT_XML_ で始まる表関数は、いずれかの MON_GET_*_DETAILS 表関数によって (あるいは統計、アクティビティー、作業単位、またはパッケージ・キャッシュ・イベント・モニターの出力から) 戻される XML メトリック文書を入力として受け入れ、フォーマット設定された行ベースの出力を戻します。
  • MON_FORMAT_XML_COMPONENT_TIMES_BY_ROW はコンポーネント時間に関するフォーマット設定された行ベースの出力を戻します。
  • MON_FORMAT_XML_METRICS_BY_ROW はすべてのメトリックに関するフォーマット設定された行ベースの出力を戻します。
  • MON_FORMAT_XML_TIMES_BY_ROW は、待機時間と処理時間の結合された階層に関するフォーマット設定された行ベースの出力を戻します。
  • MON_FORMAT_XML_WAIT_TIMES_BY_ROW 表関数は、待機時間に関するフォーマット設定された行ベースの出力を戻します。

イベント・モニター (EVMON) ルーチン

イベント・モニター・ルーチンを使用すると、EVMON_FORMAT_UE_TO_XML 表関数を使用して XML 文書を介するか、または EVMON_FORMAT_UE_TO_TABLES プロシージャーを使用してリレーショナル表を介することにより、イベント・モニター・データにアクセスできます。