10.59 V$SQL_PLAN_MONITOR

V$SQL_PLAN_MONITORは、V$SQL_MONITORにある、各SQL文に対するプラン・レベルの監視統計を示します。V$SQL_PLAN_MONITOR内の各行は、監視対象の実行計画の操作に対応します。V$SQL_MONITORと同様に、V$SQL_PLAN_MONITOR内で公開された統計は、通常、文の実行中に毎秒更新されます。これらの統計は、V$SQL_MONITORと同様、再利用されます。

SQLプラン監視のオーバーヘッドを回避するために、プランの各操作で収集される統計では、経過時間、CPU時間、I/O時間などの時間情報を記録しません。かわりに、この時間情報は、SQL_IDSQL_EXEC_STARTSQL_EXEC_IDおよびSQL_PLAN_LINE_ID(V$SQL_PLAN_MONITORでは単純にPLAN_LINE_IDという)のV$ACTIVE_SESSION_HISTORYV$SQL_PLAN_MONITORを結合することによって、きわめて正確に見積もることができます。この結合の結果は、プラン内の各操作によって実行されるアクティビティのサンプルで、ここからCPU時間および待機時間の見積りを導出できます。これは、V$ACTIVE_SESSION_HISTORYで検出される対応アクティビティ・タイプのサンプル数に応じて、V$SQL_MONITORで検出される文レベル監視時間の統計情報をブレークすることによって達成されます。

データ型 説明

CON_ID

NUMBER

データが関係するコンテナのID。可能な値は次のとおり。

  • 0: この値は、CDB全体に関連するデータを含む行に使用される。この値は、非CDB内の行にも使用される。

  • 1: この値は、ルートのみに関連するデータを含む行に使用される

  • n: nは、データを含む行に適用されるコンテナID

KEY

NUMBER

V$SQL_PLAN_MONITORV$SQL_MONITORに効率的に結合するための外部キー(V$SQL_MONITORを参照)

STATUS

VARCHAR2(19)

SQL実行のステータス:

  • EXECUTING - SQL文は現在も実行中

  • DONE (ERROR) - エラーが発生して、実行が終了した

  • DONE (FIRST N ROWS) - すべての行がフェッチされる前に、実行はアプリケーションにより終了された

  • DONE (ALL ROWS) - 実行が終了して、すべての行はフェッチされた

  • DONE - 実行が終了した(パラレル実行)

FIRST_REFRESH_TIME

DATE

SQL文の監視の開始時刻

LAST_REFRESH_TIME

DATE

SQL文の統計が前回更新された時刻

FIRST_CHANGE_TIME

DATE

この操作によって最初に行が生成された時刻

LAST_CHANGE_TIME

DATE

この操作によって最後に行が生成された時刻

REFRESH_COUNT

NUMBER

統計がリフレッシュされた回数

SID

NUMBER

監視対象のSQL文を実行している(または実行が完了した)セッション識別子

PROCESS_NAME

VARCHAR2(5)

プロセス名識別子

SQL_ID

VARCHAR2(13)

SQL識別子

SQL_EXEC_START

DATE

実行の開始時刻

SQL_EXEC_ID

NUMBER

実行識別子

SQL_PLAN_HASH_VALUE

NUMBER

SQLプランのハッシュ値

SQL_CHILD_ADDRESS

RAW(4 | 8)

子カーソルのアドレス

PLAN_PARENT_ID

NUMBER

現行のステップの出力に基づいて動作する、次の実行ステップのID

PLAN_LINE_ID

NUMBER

エントリのプランの行番号

PLAN_OPERATION

VARCHAR2(30)

プランの操作の名前(V$SQL_PLANからの)

PLAN_OPTIONS

VARCHAR2(30)

プランのオプション名(V$SQL_PLANからの)

PLAN_OBJECT_OWNER

VARCHAR2(128)

表または索引を含むスキーマを持つユーザーの名前

PLAN_OBJECT_NAME

VARCHAR2(128)

表名または索引名

PLAN_OBJECT_TYPE

VARCHAR2(80)

オブジェクトのタイプ

PLAN_DEPTH

NUMBER

ツリー内の操作の深さ(レベル)。レベル情報を取得するために、必ずしもCONNECT BY文(通常、PLAN_TABLE表からの行をインデントするために使用)を発行する必要はない。ルート操作(文)は、レベル0です。

PLAN_POSITION

NUMBER

同じPARENT_IDを持つすべての操作の処理順序

PLAN_COST

NUMBER

オプティマイザのコストベース・アプローチによって見積られた操作のコスト。ルールベース方法を使用する文の場合、この列はNULL。

PLAN_CARDINALITY

NUMBER

コストベースのオプティマイザによる操作によって作成された行数の見積り

PLAN_BYTES

NUMBER

コストベースのオプティマイザによる操作によって作成されたバイト数の見積り

PLAN_TIME

NUMBER

オプティマイザのコストベース・アプローチによって見積られた操作の経過時間(秒)。ルールベース方法を使用する文の場合、この列はNULL。

PLAN_PARTITION_START

VARCHAR2(256)

アクセスされたパーティション範囲の開始パーティション

PLAN_PARTITION_STOP

VARCHAR2(256)

アクセスされたパーティション範囲の終了パーティション

PLAN_CPU_COST

NUMBER

オプティマイザのコストベース・アプローチによって見積られた操作のCPUコスト。ルールベース方法を使用する文の場合、この列はNULL。

PLAN_IO_COST

NUMBER

オプティマイザのコストベース・アプローチによって見積られた操作のI/Oコスト。ルールベース方法を使用する文の場合、この列はNULL。

PLAN_TEMP_SPACE

NUMBER

オプティマイザのコストベース方法で見積もった操作(ソートまたはハッシュ結合)の一時領域の使用方法。ルールベース方法を使用する文の場合、この列はNULL。

STARTS

NUMBER

この操作が実行された回数。たとえば、操作は、ネステッド・ループ結合の右側にある場合には複数回実行される(ネステッド・ループ結合左側に入力されている各行の場合は1回)。

OUTPUT_ROWS

NUMBER

実行が開始されてからこの操作によって生成された行数。この数は、この操作の実行数すべてに対して累積される。STARTS列の値で割ると、操作の実行当たりの平均行数が算出される。STARTS列の値は、OUTPUT_ROWS列の値以上になる。値は通常等しくなるが、内部の最適化の状況次第で大きくなることもある。

IO_INTERCONNECT_BYTES

NUMBER

Oracle Databaseとストレージ・システムの間で交換されたI/Oのバイト数。Oracleが実行の監視を開始した後のみ保持される。

PHYSICAL_READ_REQUESTS

NUMBER

監視対象のSQLによって発行された物理読取りI/O要求の数。Oracleが実行の監視を開始した後のみ保持される。

PHYSICAL_READ_BYTES

NUMBER

監視対象のSQLによってディスクから読み取られたバイト数。Oracleが実行の監視を開始した後のみ保持される。

PHYSICAL_WRITE_REQUESTS

NUMBER

監視対象のSQLによって発行された物理書込みI/O要求の数。Oracleが実行の監視を開始した後のみ保持される。

PHYSICAL_WRITE_BYTES

NUMBER

監視対象のSQLによってディスクに書き込まれたバイト数。Oracleが実行の監視を開始した後のみ保持される。

WORKAREA_MEM

NUMBER

問合せ実行時に操作が使用するメモリー量(バイト)。実行が終了している場合はNULL。これは、ソート、ハッシュ結合、グループ化など、作業領域を使用した操作に対してのみ適用される。

WORKAREA_MAX_MEM

NUMBER

WORKAREA_MEMの最大値(バイト)。操作が作業領域を使用していない場合はNULL。実行が終了した時点で、この値は、文の実行中にこの操作が消費した最大メモリー量を保持する。

WORKAREA_TEMPSEG

NUMBER

問合せ実行時に操作が使用する一時領域の量(バイト)。操作がディスクに収容されていないか、実行が終了している場合はNULL。

WORKAREA_MAX_TEMPSEG

NUMBER

WORKAREA_TEMPSEGの最大値(バイト)。この操作がディスクに収容されていない場合はNULL。実行が終了した時点で、この値は、実行時全体でこの操作が消費した最大一時領域量を保持する。

OTHERSTAT_GROUP_ID

NUMBER

プラン行の統計グループ識別子(V$SQL_MONITOR_STATNAMEGROUP_ID列を参照)

OTHERSTAT_1_ID

NUMBER

該当するプラン行の統計番号1の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_1_TYPE

NUMBER

予約済

OTHERSTAT_1_VALUE

NUMBER

該当するプラン行の統計番号1の値

OTHERSTAT_2_ID

NUMBER

該当するプラン行の統計番号2の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_2_TYPE

NUMBER

予約済

OTHERSTAT_2_VALUE

NUMBER

該当するプラン行の統計番号2の値

OTHERSTAT_3_ID

NUMBER

該当するプラン行の統計番号3の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_3_TYPE

NUMBER

予約済

OTHERSTAT_3_VALUE

NUMBER

該当するプラン行の統計番号3の値

OTHERSTAT_4_ID

NUMBER

該当するプラン行の統計番号4の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_4_TYPE

NUMBER

予約済

OTHERSTAT_4_VALUE

NUMBER

該当するプラン行の統計番号4の値

OTHERSTAT_5_ID

NUMBER

該当するプラン行の統計番号5の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_5_TYPE

NUMBER

予約済

OTHERSTAT_5_VALUE

NUMBER

該当するプラン行の統計番号5の値

OTHERSTAT_6_ID

NUMBER

該当するプラン行の統計番号6の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_6_TYPE

NUMBER

予約済

OTHERSTAT_6_VALUE

NUMBER

該当するプラン行の統計番号6の値

OTHERSTAT_7_ID

NUMBER

該当するプラン行の統計番号7の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_7_TYPE

NUMBER

予約済

OTHERSTAT_7_VALUE

NUMBER

該当するプラン行の統計番号7の値

OTHERSTAT_8_ID

NUMBER

該当するプラン行の統計番号8の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_8_TYPE

NUMBER

予約済

OTHERSTAT_8_VALUE

NUMBER

該当するプラン行の統計番号8の値

OTHERSTAT_9_ID

NUMBER

該当するプラン行の統計番号9の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_9_TYPE

NUMBER

予約済

OTHERSTAT_9_VALUE

NUMBER

該当するプラン行の統計番号9の値

OTHERSTAT_10_ID

NUMBER

該当するプラン行の統計番号10の統計識別子(V$SQL_MONITOR_STATNAMEID列を参照)

OTHERSTAT_10_TYPE

NUMBER

予約済

OTHERSTAT_10_VALUE

NUMBER

該当するプラン行の統計番号10の値

OTHER_XML

CLOB

実行計画の実行ステップに固有の追加情報を示す。次の項目を含む複数の情報を格納できるため、この列の内容はXMLを使用して構成される。

  • 問合せが解析された対象スキーマの名前

  • EXPLAIN PLANを作成したOracle Databaseのリリース番号

  • 実行計画に関連付けられたハッシュ値

  • 実行計画の作成に使用されたアウトラインまたはSQLプロファイルがある場合は、その名前

  • 計画の作成に動的統計が使用されたかどうか

  • アウトライン・データ(同じ計画の再作成に使用できる一連のオプティマイザ・ヒント)

PLAN_OPERATION_INACTIVE

NUMBER

このプラン操作が最終の解決済プランの一部であるかどうか

関連項目:

V$SQL_MONITOR_STATNAME