177 DBMS_SQL_MONITOR
DBMS_SQL_MONITOR
パッケージでは、リアルタイムSQL監視およびリアルタイム・データベース操作監視について説明します。
この章のトピックは、次のとおりです:
参照:
177.1 DBMS_SQL_MONITORの概要
DBMS_SQL_MONITOR
パッケージでは、リアルタイムSQL監視およびリアルタイム・データベース操作監視について説明します。
これらの機能によって、高コストとみなされているSQL文、PL/SQLブロックまたはコンポジット・データベース操作の自動監視が可能になります。単一のSQL文、あるいは単一のPL/SQLプロシージャまたは機能はシンプル・データベースの操作です。コンポジット・データベースの操作は、データベース・セッションで定義された2つの時点間のアクティビティです。監視されるデータは、V$SQL_MONITOR
およびV$SQL_PLAN_MONITOR
ビューに収集されます。
次のサブプログラムは、コンポジット・データベース操作の監視を開始および終了します。
次のサブプログラムは、V$SQL_MONITOR
およびV$SQL_PLAN_MONITOR
で収集された監視データに関するレポートを作成します。
177.2 DBMS_SQL_MONITORのセキュリティ・モデル
このパッケージはPUBLIC
で使用可能であり、実行者権限で実行します。レポートのファンクションには、ロールSELECT_CATALOG_ROLE
で提供されるものと同様のカタログからデータを選択するための権限が必要です。
177.3 DBMS_SQL_MONITORの定数
DBMS_SQL_MONITOR
パッケージでは、次の表に示す定数が使用されます。
Table 177-1 DBMS_SQL_MONITORの定数
定数 | タイプ | 値 | 説明 |
---|---|---|---|
|
|
|
操作の開始時にコンポジット・データベースの操作を強制的に追跡します。 |
|
|
|
操作の開始時にコンポジット・データベースの操作を強制的には追跡しません。CPUまたはI/O時間を5秒消費した場合にのみ追跡されます。 |
177.4 DBMS_SQL_MONITORサブプログラムの要約
この表は、DBMS_SQL_MONITOR
パッケージのサブプログラムについて説明しています。
表177-2 DBMS_SQL_MONITORパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
このファンクションでは、現在のセッションでデータベース操作を開始します。 |
|
このファンクションでは、現在のセッションでデータベース操作を終了します。指定されたデータベース操作がない場合は、このファンクションの効果はありません。 |
|
このファンクションでは、SQL文、PL/SQLブロックまたはデータベース操作に関するモニタリング情報による詳細レポートを作成します。 |
|
このファンクションは |
|
このファンクションは、Oracle Databaseによって監視されたすべてのデータベース操作またはデータベース操作のサブセットに関するレポートを作成します。 |
|
このファンクションは |
177.4.1 BEGIN_OPERATIONファンクション
このファンクションでは、現在のセッションでデータベース操作を開始します。
構文
DBMS_SQL_MONITOR.BEGIN_OPERATION (
dbop_name IN VARCHAR2,
dbop_eid IN NUMBER := NULL,
forced_tracking IN VARCHAR2 := NO_FORCE_TRACKING,
attribute_list IN VARCHAR2 := NULL,
session_id IN NUMBER := NULL,
session_serial IN NUMBER := NULL)
iRETURN NUMBER;
パラメータ
表177-3 BEGIN_OPERATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
コンポジット・データベース操作の名前です。 |
|
コンポジット・データベース操作の現在の実行に対する一意の識別子です。 |
|
追跡を強制実行するかどうか。使用可能な値は次のとおりです。
「DBMS_SQL_MONITORの定数」を参照してください。 |
|
ユーザーが作成した属性のリストです。これは、名前/値ペア( |
session_id |
監視するセッションのセッションID。省略した場合(またはNULLの場合)、データベースは現在のセッションを監視します。 |
session_serial |
監視するセッションのシリアル番号。省略した場合(またはNULLの場合)、データベースはセッションIDのみを使用してセッションを決定します。 |
戻り値
このファンクションは、データベース操作の実行IDを戻します。dbop_eid
の値がNULLの場合、データベースは一意の値を生成します。
177.4.2 END_OPERATIONプロシージャ
このプロシージャは、現在のセッションでデータベース操作を終了します。指定されたデータベース操作がない場合は、このファンクションの効果はありません。
構文
DBMS_SQL_MONITOR.END_OPERATION(
dbop_name IN VARCHAR2,
dbop_eid IN NUMBER);
パラメータ
表177-4 END_OPERATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
コンポジット・データベース操作の名前です。 |
|
コンポジット・データベース操作の現在の実行に対する一意の識別子です。 |
177.4.3 REPORT_SQL_MONITORファンクション
このファンクションでは、SQL文、PL/SQLブロックまたはデータベース操作に関するモニタリング情報による詳細レポートを作成します。
各操作には、キー情報および関連付けられているグローバルな統計情報が指定されます。このファンクションを使用して、データベース操作に関する詳細な監視情報を取得します。
このレポートで対象となるデータベース操作は次になります。
-
Oracle Databaseによって監視された最後のデータベース操作(デフォルトはパラメータなし)。
-
指定されたセッションで実行され、Oracle Databaseによって監視された最後のデータベース操作。このセッションは、セッションIDか、オプションのシリアル番号で識別されます(
-1
が現在のセッションです)。 -
sql_id
で識別された特定のデータベース操作の最後の実行。 -
sql_id
、sql_exec_start
およびsql_exec_id
を組み合せて識別されたデータベース操作の特定の実行。 -
dbop_name
で識別される特定のデータベース操作の最後の実行。 -
dbop_name
とdbop_exec_id
を組み合せて識別されるデータベース操作の特定の実行。
構文
DBMS_SQL_MONITOR.REPORT_SQL_MONITOR ( sql_id IN VARCHAR2 DEFAULT NULL, dbop_name IN VARCHAR2 DEFAULT NULL, dbop_exec_id IN NUMBER DEFAULT NULL, session_id IN NUMBER DEFAULT NULL, session_serial IN NUMBER DEFAULT NULL, sql_exec_start IN DATE DEFAULT NULL, sql_exec_id IN NUMBER DEFAULT NULL, inst_id IN NUMBER DEFAULT NULL, start_time_filter IN DATE DEFAULT NULL, end_time_filter IN DATE DEFAULT NULL, instance_id_filter IN NUMBER DEFAULT NULL, parallel_filter IN VARCHAR2 DEFAULT NULL, plan_line_filter IN NUMBER DEFAULT NULL, event_detail IN VARCHAR2 DEFAULT 'YES', bucket_max_count IN NUMBER DEFAULT 128, bucket_interval IN NUMBER DEFAULT NULL, base_path IN VARCHAR2 DEFAULT NULL, last_refresh_time IN DATE DEFAULT NULL, report_level IN VARCHAR2 DEFAULT 'TYPICAL', type IN VARCHAR2 DEFAULT 'TEXT', sql_plan_hash_value IN NUMBER DEFAULT NULL, con_name IN VARCHAR2 DEFAULT NULL) RETURN CLOB;
パラメータ
表177-5 REPORT_SQL_MONITORプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
監視情報の表示が必要なシンプル・データベース操作の |
|
コンポジット・データベース操作の監視情報を表示する対象の |
|
監視情報の表示対象であるコンポジット・データベース操作の実行ID。 |
|
指定されたセッションのかわりに実行および監視される文のサブセットのみが対象となります。デフォルトは |
|
|
|
監視されるSQLの実行が開始された時刻。 |
|
同じSQL文の異なる実行を識別するためにSQL監視によって内部的に生成された数値のID。したがって、各実行には、同じ |
|
指定したインスタンスで開始された問合せのみを検索します。現在のインスタンスを対象にするには |
|
|
|
|
|
指定したインスタンスのアクティビティのみを検索します。すべてのインスタンスを対象にするには |
|
パラレル・フィルタはパラレル実行にのみ適用され、これによってパラレル実行に関連する処理のサブセットのみを選択できます。文字列
|
|
SQLの計画で指定した行番号のアクティビティおよび実行統計を選択します。 |
|
|
|
レポートで作成するバケットの最大数を指定します。 |
|
すべてのヒストグラム・バケットの正確な時間間隔(秒)を表します。指定すると、 |
|
フレックスHTML形式で外部ファイル(Javaスクリプトおよびフラッシュ |
|
|
|
レポートの詳細なレベル。次のうち、1つのみを指定できます。
また、レポートの個々のセクションは、
また、SQLテキストは異なるレベルで指定できます。
|
|
レポート・タイプ。
|
|
指定した計画ハッシュ値があるもののみを対象にします。デフォルトは |
|
マルチテナント・データベース内のコンテナ名。 |
戻り値
SQL監視レポート、XML文書。
使用上のノート
このファンクションを起動するユーザーは、次の固定ビューにアクセスする権限を持っている必要があります。
-
GV$SQL_MONITOR
-
GV$SQL_PLAN_MONITOR
-
GV$ACTIVE_SESSION_HISTORY
-
GV$SESSION_LONGOPS
-
GV$SQL
(SQL全文が要求され、その長さが2KBを超える場合)
177.4.5 REPORT_SQL_MONITOR_LISTファンクション
このファンクションは、Oracle Databaseによって監視されたすべてのデータベース操作またはデータベース操作のサブセットに関するレポートを作成します。
各データベース操作には、キー情報および関連付けられているグローバルな統計情報が指定されます。
構文
DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST (
sql_id IN VARCHAR2 DEFAULT NULL,
dbop_name IN VARCHAR2 DEFAULT NULL,
monitor_type IN NUMBER DEFAULT MONITOR_TYPE_ALL,
session_id IN NUMBER DEFAULT NULL,
session_serial IN NUMBER DEFAULT NULL,
inst_id IN NUMBER DEFAULT NULL,
active_since_date IN DATE DEFAULT NULL,
active_since_sec IN NUMBER DEFAULT NULL,
last_refresh_time IN DATE DEFAULT NULL,
report_level IN VARCHAR2 DEFAULT 'TYPICAL',
auto_refresh IN NUMBER DEFAULT NULL,
base_path IN VARCHAR2 DEFAULT NULL,
type IN VARCHAR2 DEFAULT 'TEXT',
con_name IN VARCHAR2 DEFAULT NULL)
RETURN CLOB;
パラメータ
表177-6 REPORT_SQL_MONITOR_LISTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
監視情報の表示が必要なシンプル・データベース操作の |
|
コンポジット・データベース操作の監視情報を表示する対象の |
|
モニター・タイプ:
|
|
指定されたセッションのかわりに実行および監視されたデータベース操作のサブセットのみが対象となります。デフォルトは |
|
|
|
指定されたインスタンスで発生するデータベース操作で監視対象のもののみを確認します。レポートが実行されたインスタンスを対象にするには |
|
|
|
|
|
|
|
レポートの詳細なレベル。レベルは、 |
|
監視対象のSQLまたはデータベース操作の実行中にレポート・データが自動的にリフレッシュされるまでの時間間隔(秒単位)を指定します。これは、アクティブなレポート・タイプに適用されます。 |
|
フレックスHTML形式で外部ファイル(Javaスクリプトおよびフラッシュ |
|
レポート・タイプ。
|
|
マルチテナント・データベース内のコンテナ名。 |
戻り値
監視されたデータベース操作のリストが含まれる、テキスト形式、XML形式またはHTML形式のレポート。
使用上のノート
-
REPORT_SQL_MONITORファンクションを使用すると、単一のデータベース操作に関する監視情報の詳細が取得されます。
-
このファンクションを呼び出すユーザーには、固定ビューの
GV$SQL_MONITOR
とGV$SQL
にアクセスする権限が必要です。