DBMS_USERDIAGパッケージ
DBMS_USERDIAGパッケージには、特定のSQL文、セッション、クライアント識別子またはアプリケーション・サービス、モジュールおよびアクションに対するSQLトレースを有効および無効にするサブプログラムが用意されています。さらに詳細な診断のために、バインド変数値、待機イベント情報および実行計画統計を収集することもできます。
SESSION_SQL_TRACE_ENABLEプロシージャ
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLEプロシージャを使用して、現在のセッションまたは指定したトレース属性に一致するセッションに対してSQLトレースを有効にします。
構文
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE (
level IN BINARY_INTEGER DEFAULT 1,
sid IN BINARY_INTEGER DEFAULT 0,
ser IN BINARY_INTEGER DEFAULT 0,
instance_name IN VARCHAR2 DEFAULT NULL,
binds IN BINARY_INTEGER DEFAULT 0,
waits IN BINARY_INTEGER DEFAULT 0,
client_id IN VARCHAR2 DEFAULT NULL,
service IN VARCHAR2 DEFAULT NULL,
module IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
plan_stat IN VARCHAR2 DEFAULT NULL,
sql_id IN VARCHAR2 DEFAULT NULL
);パラメータ
| パラメータ | 摘要 |
|---|---|
level |
SQLトレース・レベルを指定します。レベル1は、基本的なトレース・データを収集します。レベル4にはバインド変数情報が含まれ、レベル8には待機イベント情報が含まれます。値を組み合せることができます。このパラメータはオプションで、デフォルトは1です。 |
sid |
ターゲット・セッションのセッション識別子を指定します。デフォルト値0は、現在のセッションを識別します。 |
ser |
ターゲットセッションのシリアル番号を指定します。デフォルト値0は、現在のセッションを識別します。sidとserを一緒に使用して、別のセッションを識別します。 |
instance_name |
ターゲット・セッションを含むデータベース・インスタンスを指定します。 |
binds |
バインド変数情報を含めるかどうかを指定します。0以外の値にはバインド変数情報が含まれ、レベル4のトレースが追加されます。デフォルト値は0です。 |
waits |
待機イベント情報を含めるかどうかを指定します。ゼロ以外の値には、待機イベント情報が含まれ、レベル8のトレースが追加されます。デフォルト値は0です。 |
client_id |
データベース・インスタンス間のセッションの照合に使用するクライアント識別子を指定します。 |
service |
セッションの照合に使用するデータベース・サービスを指定します。 |
module |
セッションを照合するためにserviceとともに使用されるアプリケーション・モジュールを指定します。 |
action |
セッションを照合するためにserviceおよびmoduleとともに使用されるアプリケーション・アクションを指定します。 |
plan_stat |
実行計画統計オプションを指定します。有効な値は、NEVER、FIRST_EXECUTION、ALL_EXECUTIONSおよびADAPTIVEです。デフォルト値はFIRST_EXECUTIONです。 |
sql_id |
SQL IDを指定します。指定した場合、トレースは、そのSQL IDを持つSQL文に制限されます。 |
例
次の例では、特定のSQL文のSQLトレースを有効にし、バインド変数および待機イベント情報を含めます。
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
sql_id => '5yka4rvxpbjc6',
binds => 1,
waits => 1,
plan_stat => 'ADAPTIVE');
END;
/次の例では、セッションIDとシリアル番号を使用して、別のセッションのSQLトレースを有効にします。
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
sid => 39,
ser => 15593,
binds => 1,
waits => 1);
END;
/使用上のノート
- このプロシージャを実行するには、
ADMINユーザーとしてログインするか、DBMS_USERDIAGパッケージに対するEXECUTE権限を持っている必要があります。 - SQLトレースは、デフォルトで無効になっています。トレース・ルールに対して1つのトレース方法を有効にし、ワークロードを実行し、同じ識別属性を使用してトレースを無効にします。
- トレース・ルールに1つのトレース方法を指定します。トレース・ターゲットは、SQL ID、セッション、クライアント識別子、サービス、モジュールおよびアクションによって識別できます。
- バインド変数および待機イベント・トレースを含む高いトレース・レベルでは、大きなトレース・ファイルが生成され、アプリケーションのパフォーマンスに影響する可能性があります。
- ローカル・ユーザーは、共通ユーザーに属するセッションをトレースできません。
DBMS_USERDIAG.ENABLE_SQL_TRACE_EVENTは非推奨です。かわりに、SESSION_SQL_TRACE_ENABLEおよびSESSION_SQL_TRACE_DISABLEを使用してください。
詳細は、SESSION_SQL_TRACE_DISABLEプロシージャを参照してください。
SESSION_SQL_TRACE_DISABLEプロシージャ
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLEプロシージャを使用して、現在のセッションまたは指定したトレース属性に一致するセッションのSQLトレースを無効にします。
ワークロードの終了後にトレースを無効にします。トレースが無効になっている場合、データベースは、収集されたトレース・データをSQLトレース用に構成されたクラウド・オブジェクト・ストレージ・バケットにアップロードします。トレース・データは、生成されたトレース・ファイルまたはSESSION_CLOUD_TRACEビューで確認できます。
構文
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE (
level IN BINARY_INTEGER DEFAULT 1,
sid IN BINARY_INTEGER DEFAULT 0,
ser IN BINARY_INTEGER DEFAULT 0,
instance_name IN VARCHAR2 DEFAULT NULL,
binds IN BINARY_INTEGER DEFAULT 0,
waits IN BINARY_INTEGER DEFAULT 0,
client_id IN VARCHAR2 DEFAULT NULL,
service IN VARCHAR2 DEFAULT NULL,
module IN VARCHAR2 DEFAULT NULL,
action IN VARCHAR2 DEFAULT NULL,
plan_stat IN VARCHAR2 DEFAULT NULL,
sql_id IN VARCHAR2 DEFAULT NULL
);パラメータ
| パラメータ | 摘要 |
|---|---|
level |
SQLトレース・レベルを指定します。レベル1は、基本的なトレース・データを収集します。レベル4にはバインド変数情報が含まれ、レベル8には待機イベント情報が含まれます。値を組み合せることができます。このパラメータはオプションで、デフォルトは1です。 |
sid |
ターゲット・セッションのセッション識別子を指定します。デフォルト値0は、現在のセッションを識別します。 |
ser |
ターゲットセッションのシリアル番号を指定します。デフォルト値0は、現在のセッションを識別します。sidとserを一緒に使用して、別のセッションを識別します。 |
instance_name |
ターゲット・セッションを含むデータベース・インスタンスを指定します。 |
binds |
バインド変数情報を含めるかどうかを指定します。0以外の値にはバインド変数情報が含まれ、レベル4のトレースが追加されます。デフォルト値は0です。 |
waits |
待機イベント情報を含めるかどうかを指定します。ゼロ以外の値には、待機イベント情報が含まれ、レベル8のトレースが追加されます。デフォルト値は0です。 |
client_id |
データベース・インスタンス間のセッションの照合に使用するクライアント識別子を指定します。 |
service |
セッションの照合に使用するデータベース・サービスを指定します。 |
module |
セッションを照合するためにserviceとともに使用されるアプリケーション・モジュールを指定します。 |
action |
セッションを照合するためにserviceおよびmoduleとともに使用されるアプリケーション・アクションを指定します。 |
plan_stat |
実行計画統計オプションを指定します。有効な値は、NEVER、FIRST_EXECUTION、ALL_EXECUTIONSおよびADAPTIVEです。デフォルト値はFIRST_EXECUTIONです。 |
sql_id |
SQL IDを指定します。指定した場合、トレースは、そのSQL IDを持つSQL文に制限されます。 |
トレースを有効にしたときに使用したものと同じ識別属性を指定します。
例
次の例では、5yka4rvxpbjc6で識別されるSQL文のSQLトレースを無効にします。
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
sql_id => '5yka4rvxpbjc6');
END;
/次の例では、セッションID 39およびシリアル番号15593で識別されるセッションのSQLトレースを無効にします。
BEGIN
DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
sid => 39,
ser => 15593);
END;
/使用上のノート
SESSION_SQL_TRACE_ENABLEで使用したものと同じ識別属性をSESSION_SQL_TRACE_DISABLEで使用します。- トレースが無効になる前にターゲット・セッションが終了すると、セッションの終了時にトレース・ファイルがアップロードされます。
- トレース・データにはアプリケーション・データを含めることができます。クラウド・オブジェクト・ストレージ・バケットおよび資格証明を適切に保護します。
- トレース・データは、トレースが有効化されたセッションの間、
SESSION_CLOUD_TRACEビューで使用できます。セッションが終了すると、ビューでデータを使用できなくなります。
詳細は、SESSION_SQL_TRACE_ENABLEプロシージャを参照してください。