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プロシージャを参照してください。