DBMS_SQL_MONITOR
パッケージでは、リアルタイムSQL監視およびリアルタイム・データベース操作監視について説明します。
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
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
で収集された監視データに関するレポートを作成します。
このパッケージはPUBLIC
で使用可能で、実行者権限で実行します。レポート機能では、SELECT_CATALOG_ROLE
ロールによって提供される、カタログからデータを選択する権限が必要です。
表151-2 DBMS_SQL_MONITORパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
現在のセッションでコンポジット・データベースの操作を開始します。 |
|
現在のセッションの監視操作を終了します。 |
|
Oracleで監視している特定のデータベース操作の詳細レポートを作成します。 |
|
Oracleで監視しているデータベース操作のすべてまたは1つのサブセットのレポートを作成します。 |
このファンクションは、現在のセッションでコンポジット・データベースの操作を開始します。
構文
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) RETURN NUMBER;
パラメータ
表151-3 BEGIN_OPERATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
コンポジット・データベース操作の名前です。 |
|
コンポジット・データベース操作の現在の実行に対する一意の識別子です。 |
|
値: (定義されている定数を参照):
|
|
ユーザーが作成した属性のリストです。これは、名前/値ペア( |
このファンクションは、現在のセッション内のコンポジット・データベースの操作を終了します。指定されたコンポジット・データベース操作がない場合は、このプロシージャの効果はありません。
このファンクションは、シンプル・データベースまたはコンポジット・データベースの操作に関する監視情報を含む詳細レポートを作成します。各操作には、キー情報および関連付けられているグローバルな統計情報が指定されます。このファンクションを使用して、シンプル・データベースまたはコンポジット・データベースの操作に関する詳細な監視情報を取得します。
このレポートで対象となるデータベース操作は次になります。
Oracleで監視するデータベースの最後の操作(デフォルトはパラメータなし)。
指定されたセッションで実行し、Oracleで監視するデータベースの最後の操作。このセッションは、セッション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;
パラメータ
表151-5 REPORT_SQL_MONITORプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
監視情報の表示が必要なシンプル・データベース操作の |
|
コンポジット・データベース操作の監視情報を表示する対象の |
|
監視情報の表示対象であるコンポジット・データベース操作の実行ID。 |
|
指定されたセッションのかわりに実行および監視される文のサブセットのみが対象となります。デフォルトは |
|
|
|
監視されるSQLの実行が開始された時刻。 |
|
同じSQL文の異なる実行を識別するためにSQL監視によって内部的に生成された数値のID。したがって、各実行には、同じ |
|
指定したインスタンスで開始された問合せのみを検索します。現在のインスタンスを対象にするには |
|
|
|
|
|
指定したインスタンスのアクティビティのみを検索します。すべてのインスタンスを対象にするには |
|
パラレル・フィルタはパラレル実行にのみ適用され、これによってパラレル実行に関連する処理のサブセットのみを選択できます。文字列
|
|
SQLの計画で指定した行番号のアクティビティおよび実行統計を選択します。 |
|
|
|
レポートで作成するバケットの最大数を指定します。 |
|
すべてのヒストグラム・バケットの正確な時間間隔(秒)を表します。指定すると、 |
|
フレックスHTML形式で外部ファイル(Javaスクリプトおよびフラッシュ |
|
|
|
レポートの詳細なレベル。次のうち、1つのみを指定できます。
また、レポートの個々のセクションは、
また、SQLテキストは異なるレベルで指定できます。
|
|
レポート・タイプ
|
|
指定した計画ハッシュ値があるもののみを対象にします。デフォルトは |
|
コンテナ名。 |
このファンクションは、Oracleで監視しているデータベース操作のすべてまたは1つのサブセットのレポートを作成します。各データベース操作には、キー情報および関連付けられているグローバルな統計情報が指定されます。
構文
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;
パラメータ
表151-6 REPORT_SQL_MONITOR_LISTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
監視情報の表示が必要なシンプル・データベース操作の |
|
コンポジット・データベース操作の監視情報を表示する対象の |
|
モニター・タイプ
|
|
指定されたセッションのかわりに実行および監視されたデータベース操作のサブセットのみが対象となります。デフォルトは |
|
|
|
指定されたインスタンスで発生するデータベース操作で監視対象のもののみを確認します。レポートが実行されたインスタンスを対象にするには |
|
|
|
|
|
|
|
レポートの詳細なレベル。レベルは、 |
|
監視対象のSQLまたはデータベース操作の実行中にレポート・データが自動的にリフレッシュされるまでの時間間隔(秒単位)を指定します。これは、アクティブなレポート・タイプに適用されます。 |
|
フレックスHTML形式で外部ファイル(Javaスクリプトおよびフラッシュ |
|
レポート・タイプ
|
|
コンテナ名。 |
使用上の注意
REPORT_SQL_MONITORファンクションを使用すると、単一のデータベース操作に関する監視情報の詳細が取得されます。
このファンクションを呼び出すユーザーには、固定ビューのGV$SQL_MONITOR
とGV$SQL
にアクセスする権限が必要です。