Paquete DBMS_USERDIAG

El paquete DBMS_USERDIAG proporciona subprogramas para activar y desactivar el rastreo SQL para una sentencia SQL, sesión, identificador de cliente o servicio de aplicación, módulo y acción específicos. También puede recopilar valores de variables ligadas, información de eventos de espera y estadísticas del plan de ejecución para obtener diagnósticos más detallados.

SESSION_SQL_TRACE_ENABLE Procedimiento

Utilice el procedimiento DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE para activar el rastreo SQL para la sesión actual o para las sesiones que coincidan con los atributos de rastreo especificados.

Sintaxis

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
);

Parámetros

Parámetro Descripción
level Especifica el nivel de rastreo SQL. El nivel 1 recopila datos de rastreo básicos. El nivel 4 incluye información de variables ligadas y el nivel 8 incluye información de eventos de espera. Los valores se pueden combinar. Este parámetro es opcional y el valor por defecto es 1.
sid Especifica el identificador de sesión de la sesión de destino. El valor predeterminado, 0, identifica la sesión actual.
ser Especifica el número de serie de la sesión de destino. El valor predeterminado, 0, identifica la sesión actual. Utilice sid y ser juntos para identificar otra sesión.
instance_name Especifica la instancia de base de datos que contiene la sesión de destino.
binds Especifica si se debe incluir información de variable de enlace. Un valor distinto de cero incluye información de variable de enlace y agrega rastreo de nivel 4. El valor por defecto es 0.
waits Especifica si se debe incluir la información del evento de espera. Un valor distinto de cero incluye información de evento de espera y agrega rastreo de nivel 8. El valor por defecto es 0.
client_id Especifica el identificador de cliente utilizado para hacer coincidir sesiones entre instancias de base de datos.
service Especifica el servicio de base de datos utilizado para hacer coincidir las sesiones.
module Especifica el módulo de aplicación utilizado con service para hacer coincidir las sesiones.
action Especifica la acción de aplicación que se utiliza con service y module para hacer coincidir las sesiones.
plan_stat Especifica la opción de estadísticas del plan de ejecución. Los valores válidos son NEVER, FIRST_EXECUTION, ALL_EXECUTIONS y ADAPTIVE. El valor por defecto es FIRST_EXECUTION.
sql_id Especifica el ID de SQL. Cuando se especifica, el rastreo se limita a la sentencia SQL con ese ID SQL.

Ejemplo

En el siguiente ejemplo se activa el rastreo SQL para una sentencia SQL específica e incluye información de eventos de espera y variables de enlace:

BEGIN
    DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
        sql_id    => '5yka4rvxpbjc6',
        binds     => 1,
        waits     => 1,
        plan_stat => 'ADAPTIVE');
END;
/

En el siguiente ejemplo, se activa el rastreo SQL para una sesión diferente mediante su ID de sesión y número de serie:

BEGIN
    DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE(
        sid   => 39,
        ser   => 15593,
        binds => 1,
        waits => 1);
END;
/

Notas de uso

  • Debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en el paquete DBMS_USERDIAG para ejecutar este procedimiento.
  • El rastreo SQL está desactivado por defecto. Active un método de rastreo para una regla de rastreo, ejecute la carga de trabajo y desactive el rastreo mediante los mismos atributos de identificación.
  • Especifique un método de rastreo para una regla de rastreo. Puede identificar destinos de rastreo por ID de SQL, sesión, identificador de cliente, servicio, módulo y acción.
  • Los niveles de rastreo más altos, incluidos el rastreo de eventos de espera y variables de enlace, pueden generar archivos de rastreo grandes y afectar al rendimiento de la aplicación.
  • Un usuario local no puede rastrear una sesión que pertenece a un usuario común.
  • DBMS_USERDIAG.ENABLE_SQL_TRACE_EVENT está en desuso. En su lugar, utilice SESSION_SQL_TRACE_ENABLE y SESSION_SQL_TRACE_DISABLE.

Consulte SESSION_SQL_TRACE_DISABLE Procedure para obtener más información.

SESSION_SQL_TRACE_DISABLE Procedimiento

Utilice el procedimiento DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE para desactivar el rastreo SQL para la sesión actual o para las sesiones que coincidan con los atributos de rastreo especificados.

Desactive el rastreo después de que termine la carga de trabajo. Cuando el rastreo está desactivado, la base de datos carga los datos de rastreo recopilados en el cubo de Cloud Object Storage configurado para el rastreo SQL. Puede revisar los datos de rastreo en el archivo de rastreo generado o en la vista SESSION_CLOUD_TRACE.

Sintaxis

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
);

Parámetros

Parámetro Descripción
level Especifica el nivel de rastreo SQL. El nivel 1 recopila datos de rastreo básicos. El nivel 4 incluye información de variables ligadas y el nivel 8 incluye información de eventos de espera. Los valores se pueden combinar. Este parámetro es opcional y el valor por defecto es 1.
sid Especifica el identificador de sesión de la sesión de destino. El valor por defecto, 0, identifica la sesión actual.
ser Especifica el número de serie de la sesión de destino. El valor predeterminado, 0, identifica la sesión actual. Utilice sid y ser juntos para identificar otra sesión.
instance_name Especifica la instancia de base de datos que contiene la sesión de destino.
binds Especifica si se debe incluir información de variable de enlace. Un valor distinto de cero incluye información de variable de enlace y agrega rastreo de nivel 4. El valor por defecto es 0.
waits Especifica si se debe incluir la información del evento de espera. Un valor distinto de cero incluye información de evento de espera y agrega rastreo de nivel 8. El valor por defecto es 0.
client_id Especifica el identificador de cliente utilizado para hacer coincidir sesiones entre instancias de base de datos.
service Especifica el servicio de base de datos utilizado para hacer coincidir las sesiones.
module Especifica el módulo de aplicación utilizado con service para hacer coincidir las sesiones.
action Especifica la acción de aplicación que se utiliza con service y module para hacer coincidir las sesiones.
plan_stat Especifica la opción de estadísticas del plan de ejecución. Los valores válidos son NEVER, FIRST_EXECUTION, ALL_EXECUTIONS y ADAPTIVE. El valor por defecto es FIRST_EXECUTION.
sql_id Especifica el ID de SQL. Cuando se especifica, el rastreo se limita a la sentencia SQL con ese ID SQL.

Especifique los mismos atributos de identificación que utilizó al activar el rastreo.

Ejemplo

En el siguiente ejemplo se desactiva el rastreo SQL para la sentencia SQL identificada por 5yka4rvxpbjc6:

BEGIN
    DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
        sql_id => '5yka4rvxpbjc6');
END;
/

En el siguiente ejemplo se desactiva el rastreo SQL para la sesión identificada por el ID de sesión 39 y el número de serie 15593:

BEGIN
    DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE(
        sid => 39,
        ser => 15593);
END;
/

Notas de uso

  • Utilice los mismos atributos de identificación en SESSION_SQL_TRACE_DISABLE que ha utilizado en SESSION_SQL_TRACE_ENABLE.
  • Si la sesión de destino se cierra antes de desactivar el rastreo, la base de datos carga el archivo de rastreo cuando se cierra la sesión.
  • Los datos de rastreo pueden contener datos de aplicación. Proteja el cubo y las credenciales de Cloud Object Storage según corresponda.
  • Los datos de rastreo están disponibles en la vista SESSION_CLOUD_TRACE durante la sesión en la que se ha activado el rastreo. Una vez finalizada la sesión, los datos ya no están disponibles en la vista.

Consulte SESSION_SQL_TRACE_ENABLE Procedure para obtener más información.