9.54 V$SQL_MONITOR

V$SQL_MONITORは、実行がOracleによって監視された(または監視されている)SQL文を示します。

このビューには、単純データベース操作と複合データベース操作に関するグローバルな上位レベルの情報が含まれます。

Oracle Databaseでは、次のいずれかの条件に該当する場合、上位のSQL文およびPL/SQLサブプログラムである単純なデータベース操作が監視されます。

  • 操作がパラレルで実行される。

  • 1回の操作実行で少なくとも5秒間のCPUまたはI/O時間が消費される。

  • 操作のトラッキングが/*+ MONITOR */ヒントによって強制される。

単純なデータベース操作の場合、監視の統計は複数の実行処理にわたって累積されません。この場合、V$SQL_MONITORの1つのエントリが、SQL文の1回の実行のみに対応します。同じSQL文の2つの実行を監視する場合、V$SQL_MONITORに各実行のエントリが個別に作成されます。

単純なデータベース操作の場合、V$SQL_MONITORには、パラレル実行のコーディネータ・プロセスに対して1つのエントリと、パラレル実行のサーバー・プロセスごとに1つのエントリが割り当てられます。各エントリにはV$SQL_PLAN_MONITORの対応するエントリがあります。SQL文のパラレル実行に割り当てられた各プロセスは、同じ実行に対して連携動作するため、これらのエントリは同じ実行キー(SQL_IDSQL_EXEC_STARTおよびSQL_EXEC_IDの組合せ)を共有します。

Oracle Databaseでは、次のいずれかの条件に該当する場合、複合データベース操作が監視されます。

  • データベース操作がDBMS_SQL_MONITOR.BEGIN_OPERATIONによって開始され、操作でCPUまたはI/O時間が少なくとも5秒間消費された。

  • DBMS_SQL_MONITOR.BEGIN_OPERATIONFORCE_TRACKINGYに設定することによって操作のトラッキングが強制された。

複合データベース操作の場合、各行には、操作の一部として同一セッションで実行されるPL/SQLサブプログラムおよびSQL文で統計が蓄積される操作が含まれます。

V$SQL_MONITORビューには、V$SQLで使用される統計のサブセットが含まれます。ただし、V$SQLとは異なり、監視の統計は複数の実行処理にわたって累積されません。かわりに、V$SQL_MONITORの1つのエントリは、SQL文の1回の実行のみに対応します。同じSQL文の2つの実行を監視する場合、V$SQL_MONITORに各実行のエントリが個別に作成されます。

主キーは、SQL_IDSQL_EXEC_STARTおよびSQL_EXEC_IDの各列を組み合せたものです。

V$SQL_MONITORには、パラレル実行のコーディネータ・プロセスに対して1つのエントリと、パラレル実行のサーバー・プロセスごとに1つのエントリが割り当てられます。各エントリにはV$SQL_PLAN_MONITORの対応するエントリがあります。SQL文のパラレル実行に割り当てられた各プロセスは、同じ実行に対して連携動作するため、これらのエントリは同じ実行キー(コンポジットSQL_IDSQL_EXEC_START,およびSQL_EXEC_ID)を共有します。実行キーを集計することで、パラレル実行の全体的な統計を確認できます。

監視対象のSQL文の実行中、V$SQL_MONITOR内の統計は通常、毎秒ほぼリアルタイムで更新されます。実行の終了後、監視情報はすぐに削除されません。かわりに、最低1分間、V$SQL_MONITORに保存されます。エントリは最終的に削除され、その領域が新しい文の監視時に再利用されます。

データ型 説明

KEY

NUMBER

V$SQL_MONITORV$SQL_PLAN_MONITORに格納された対応するプラン・レベルの監視統計に効率的に結合するための人為的な結合キー

REPORT_ID

NUMBER

この監視エンティティについて自動ワークロード・リポジトリ(AWR)に保管されたXMLレポートの固有ID

STATUS

VARCHAR2(19)

SQL実行のステータス:

  • QUEUED - SQL文はキューに入れられている

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

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

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

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

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

USER#

NUMBER

監視対象のSQLを発行したデータベース・ユーザーのユーザーID

USERNAME

VARCHAR2(128)

監視対象のSQLを発行したデータベース・ユーザーのユーザー名

MODULE

VARCHAR2(64)

DBMS_APPLICATION_INFO.SET_MODULEプロシージャによって設定された、サンプリング時の実行モジュールの名前

ACTION

VARCHAR2(64)

DBMS_APPLICATION_INFO.SET_ACTIONプロシージャによって設定された、サンプリング時の実行アクションの名前

SERVICE_NAME

VARCHAR2(64)

ユーザー・セッションのサービス名

CLIENT_IDENTIFIER

VARCHAR2(64)

ユーザー・セッションのクライアント識別子

CLIENT_INFO

VARCHAR2(64)

ユーザー・セッションのクライアント情報

PROGRAM

VARCHAR2(48)

監視SQLを発行したオペレーティング・システム・プログラムの名前

PLSQL_ENTRY_OBJECT_ID

NUMBER

スタック上の最上位PL/SQLサブプログラムのオブジェクトID(PL/SQLサブプログラムがスタック上にない場合は、NULL)

PLSQL_ENTRY_SUBPROGRAM_ID

NUMBER

スタック上の最上位PL/SQLサブプログラムのサブプログラムID(PL/SQLサブプログラムがスタック上にない場合は、NULL)

PLSQL_OBJECT_ID

NUMBER

現在実行中のPL/SQLサブプログラムのオブジェクトID(SQLの実行中はNULL)

PLSQL_SUBPROGRAM_ID

NUMBER

現在実行中のPL/SQLオブジェクトのサブプログラムID(SQLの実行中はNULL)

FIRST_REFRESH_TIME

DATE

SQL文の監視が開始した時刻。通常は、SQL実行開始時刻の数秒後。

LAST_REFRESH_TIME

DATE

V$SQL_MONITOR内のSQL文の統計が前回更新された時刻。文の実行中は、統計が通常毎秒リフレッシュされる。

REFRESH_COUNT

NUMBER

V$SQL_MONITOR統計がリフレッシュされた回数(通常、SQL文実行中の1秒に1回)

DBOP_EXEC_ID

NUMBER

現在の実行に対するデータベース操作実行識別子。タイプがSQLの場合、DBOP_EXEC_IDNULLとなる。

DBOP_NAME

VARCHAR2(30)

データベース操作名。タイプがSQLの場合、DBOP_NAMENULLとなる。

SID

NUMBER

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

PROCESS_NAME

VARCHAR2(5)

文を実行している(または実行を完了した)プロセス名識別子。プロセスがフォアグラウンドの場合はora。それ以外の場合は、バックグラウンド・プロセス名(たとえば、PXサーバーp001ではp001)

SQL_ID

VARCHAR2(13)

監視対象の文のSQL識別子

SQL_TEXT

VARCHAR2(2000)

監視対象のSQLテキストの最初の2000文字(最大)

IS_FULL_SQLTEXT

VARCHAR2(1)

SQL_TEXT列にすべてのSQLテキストが含まれているかどうか(Y | N)

SQL_EXEC_START

DATE

実行の開始時刻

SQL_EXEC_ID

NUMBER

実行識別子。3つの列SQL_IDSQL_EXEC_STARTおよびSQL_EXEC_IDは、ともに同じ実行キーを表す。この実行キーは、SQL文の1回の実行を一意に識別するために使用される。

SQL_PLAN_HASH_VALUE

NUMBER

SQLプランのハッシュ値

SQL_FULL_PLAN_HASH_VALUE

NUMBER

このカーソルに対する完全なSQLプランの数値表現。あるSQL_FULL_PLAN_HASH_VALUEの値を別の値と比較すると、2つのプランが同じかどうかを(2つのプランを行単位で比較するより)容易に識別できる。SQL_FULL_PLAN_HASH_VALUEは、複数のデータベース・リリースにまたがって比較することはできないので注意。下位互換性はない。

EXACT_MATCHING_SIGNATURE

NUMBER

正規化されたSQLテキストに対して計算されたシグネチャ。正規化には、空白の削除と非リテラル文字列の大文字化が含まれる。

FORCE_MATCHING_SIGNATURE

NUMBER

EXACT_MATCHING_SIGNATUREと同じ。ただし、SQLテキストのリテラルはバインドによって置換される。

SQL_CHILD_ADDRESS

RAW(4 | 8)

子カーソルのアドレス(SQL_IDとともに使用してV$SQLと結合できる)

SESSION_SERIAL#

NUMBER

監視対象の文を実行しているセッション・シリアル番号

PX_IS_CROSS_INSTANCE

VARCHAR2(1)

SQL文が複数のインスタンスにまたがってパラレルに実行されたかどうか(Y | N)

PX_MAXDOP

NUMBER

監視対象のSQLのかわりに実行されたプラン操作の最大並列度

PX_MAXDOP_INSTANCES

NUMBER

最大並列度でアクセスされたデータベース・インスタンスの数

PX_SERVERS_REQUESTED

NUMBER

監視対象のSQLの実行を要求されたパラレル実行サーバーの合計数

PX_SERVERS_ALLOCATED

NUMBER

問合せを実行するために割り当てられたパラレル実行サーバーの実際の数

PX_SERVER#

NUMBER

監視対象の文を実行している(または実行を完了した)論理パラレル実行サーバーのプロセス番号。この監視エントリが実行サーバーに関連付けられていない場合はNULL。これは、パラレル・サーバー・セット内の論理番号(V$PX_SESSIONSERVER#を参照)。

PX_SERVER_GROUP

NUMBER

PX_SERVER#が属する論理パラレル実行サーバーのグループ番号(V$PX_SESSIONSERVER_GROUPを参照)。この監視エントリがパラレル実行サーバーに関連付けられていない場合はNULL。SQL文に1つ以上のパラレル副問合せが含まれない場合、この値は通常1

PX_SERVER_SET

NUMBER

PX_SERVER#が属するパラレル実行サーバーの論理セットの番号で、1または2(V$PX_SESSIONSERVER_SETを参照)。この監視エントリがパラレル実行サーバーに関連付けられていない場合はNULL。

PX_QCINST_ID

NUMBER

パラレル実行コーディネータが実行されているインスタンス識別子。PX_SERVER#がNULLの場合はNULL。

PX_QCSID

NUMBER

パラレル実行コーディネータのセッション識別子。PX_SERVER#がNULLの場合はNULL。

ERROR_NUMBER

VARCHAR2(40)

SQLが実行に失敗した場合に示されるエラー番号(たとえば、ORA-00932の場合は932)

ERROR_FACILITY

VARCHAR2(4)

SQLが実行に失敗した場合に示されるエラー機構(たとえば、ORA-00932の場合はORA)

ERROR_MESSAGE

VARCHAR2(256)

SQLが実行に失敗した場合に表示される詳細なエラー・メッセージ(エラー番号およびエラー機構に対応している)

BINDS_XML

CLOB

SQLとともに使用されるバインド変数の情報で、名前、位置、値、データ・タイプなど(XML形式で格納される)

OTHER_XML

CLOB

XML形式で格納される、SQL実行文に関する追加情報

ELAPSED_TIME

NUMBER

経過時間(マイクロ秒)。文の実行時に更新される。

QUEUING_TIME

NUMBER

文のキューでSQLが費した時間(マイクロ秒)

CPU_TIME

NUMBER

CPU時間(マイクロ秒)。文の実行時に更新される。

FETCHES

NUMBER

SQL文に関連するフェッチ数。文の実行時に更新される。

BUFFER_GETS

NUMBER

バッファ取得操作数。文の実行時に更新される。

DISK_READS

NUMBER

ディスク読取り数。文の実行時に更新される。

DIRECT_WRITES

NUMBER

直接書込み数。文の実行時に更新される。

IO_INTERCONNECT_BYTES

NUMBER

Oracle Databaseとストレージ・システムの間で交換されたI/Oのバイト数

PHYSICAL_READ_REQUESTS

NUMBER

監視対象のSQLによって発行された物理読取りI/O要求の数

PHYSICAL_READ_BYTES

NUMBER

監視対象のSQLによってディスクから読み取られたバイト数

PHYSICAL_WRITE_REQUESTS

NUMBER

監視対象のSQLによって発行された物理書込みI/O要求の数

PHYSICAL_WRITE_BYTES

NUMBER

監視対象のSQLによってディスクに書き込まれたバイト数

APPLICATION_WAIT_TIME

NUMBER

アプリケーション待機時間(マイクロ秒)。文の実行時に更新される。

CONCURRENCY_WAIT_TIME

NUMBER

同時実行性待機時間(マイクロ秒)。文の実行時に更新される。

CLUSTER_WAIT_TIME

NUMBER

クラスタの待機時間(マイクロ秒)。文の実行時に更新される。

USER_IO_WAIT_TIME

NUMBER

ユーザーI/O待機時間(マイクロ秒)。文の実行時に更新される。

PLSQL_EXEC_TIME

NUMBER

PL/SQL実行時間(マイクロ秒)。文の実行時に更新される。

JAVA_EXEC_TIME

NUMBER

Java実行時間(マイクロ秒)。文の実行時に更新される。

RM_LAST_ACTION

VARCHAR2(48)

このSQL操作に対してリソース・マネージャによって実行された最新のアクション。値は次のいずれか。

  • CANCEL_SQL

  • KILL_SESSION

  • LOG_ONLY

  • SWITCH TO <CG NAME>

最後の値の<CG NAME>は、SQL操作の切替え先コンシューマ・グループの名前である。それ以降にリソース・プランが変更された場合、<CG NAME>はコンシューマ・グループのIDになる。

RM_LAST_ACTION_REASON

VARCHAR2(128)

このSQL操作に対してリソース・マネージャによって実行された最新のアクションの理由。値は次のいずれか。

  • SWITCH_CPU_TIME

  • SWITCH_IO_REQS

  • SWITCH_IO_MBS

  • SWITCH_ELAPSED_TIME

  • SWITCH_IO_LOGICAL

RM_LAST_ACTION_TIME

DATE

このSQL操作に対してリソース・マネージャによって実行された最新のアクションの時間。

RM_CONSUMER_GROUP

VARCHAR2(128)

このSQL操作の現在のコンシューマ・グループ

CON_ID

NUMBER

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

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

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

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

CON_NAME

VARCHAR2(128)

オブジェクトのコンテナ名。非CDBでは、この列の値はNULLです。

ECID

VARCHAR2(64)

アプリケーション・サーバーから送信された実行コンテキストの識別子

IS_ADAPTIVE_PLAN

VARCHAR2(1)

統計が適応可能なプランからのものか(Y)そうでないか(N)を示す。

IS_FINAL_PLAN

VARCHAR2(1)

統計が最終プランからのものか(Y)そうでないか(N)を示す。

IN_DBOP_NAME

VARCHAR2(30)

監視されているSQLが、それもまたデータベース操作(DBOP)によって監視されているセッションで実行された場合は、この列にはそのDBOPの名前を指定する

この列は、Oracle Database 12c リリース2 (12.2.0.1)以降で使用できます。

IN_DBOP_EXEC_ID

NUMBER

監視されているSQLが、それもまたデータベース操作(DBOP)によって監視されているセッションで実行された場合は、この列にはそのDBOの実行IDを指定する

この列は、Oracle Database 12c リリース2 (12.2.0.1)以降で使用できます。

IO_CELL_UNCOMPRESSED_BYTES

NUMBER

Exadataセルにオフロードされる非圧縮バイト数(解凍後のサイズ)

この列は、Oracle Database 12c リリース2 (12.2.0.1)以降で使用できます。

関連項目: 詳細は、Oracle Exadata Storage Serverのソフトウェアのマニュアルを参照。

IO_CELL_OFFLOAD_ELIGIBLE_BYTES

NUMBER

Exadataストレージ・システムによるフィルタリングが可能なI/Oのバイト数

この列は、Oracle Database 12c リリース2 (12.2.0.1)以降で使用できます。

関連項目: 詳細は、Oracle Exadata Storage Serverのソフトウェアのマニュアルを参照。

IO_CELL_OFFLOAD_RETURNED_BYTES

NUMBER

Exadataセルによって戻された、フィルタ処理されたバイト数(処理がExadataセルでオフロードされた後に戻されたバイト数)

この列は、Oracle Database 12c リリース2 (12.2.0.1)以降で使用できます。

関連項目: 詳細は、Oracle Exadata Storage Serverのソフトウェアのマニュアルを参照。

関連項目: