Pacote DBMS_USERDIAG

O pacote DBMS_USERDIAG fornece subprogramas para ativar e desativar o rastreamento SQL para uma instrução, sessão, identificador de cliente ou serviço de aplicativo, módulo e ação SQL específicos. Você também pode coletar valores de variáveis de bind, informações de evento de espera e estatísticas de plano de execução para obter diagnósticos mais detalhados.

SESSION_SQL_TRACE_ENABLE Procedimento

Use o procedimento DBMS_USERDIAG.SESSION_SQL_TRACE_ENABLE para ativar o rastreamento SQL para a sessão atual ou para sessões que correspondam aos atributos de rastreamento especificados.

Sintaxe

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 Descrição
level Especifica o nível de rastreamento SQL. O Nível 1 coleta dados básicos de rastreamento. O nível 4 inclui informações de variável de vínculo e o nível 8 inclui informações de evento de espera. Os valores podem ser combinados. Esse parâmetro é opcional e assume como padrão 1.
sid Especifica o identificador de sessão da sessão de destino. O valor padrão, 0, identifica a sessão atual.
ser Especifica o número de série da sessão de destino. O valor padrão, 0, identifica a sessão atual. Use sid e ser juntos para identificar outra sessão.
instance_name Especifica a instância do banco de dados que contém a sessão de destino.
binds Especifica se as informações da variável de bind devem ser incluídas. Um valor diferente de zero inclui informações de variável de vínculo e adiciona rastreamento de nível 4. O valor padrão é 0.
waits Especifica se as informações do evento de espera devem ser incluídas. Um valor diferente de zero inclui informações de evento de espera e adiciona rastreamento de nível 8. O valor padrão é 0.
client_id Especifica o identificador do cliente usado para corresponder sessões entre instâncias do banco de dados.
service Especifica o serviço de banco de dados usado para corresponder às sessões.
module Especifica o módulo de aplicação usado com service para corresponder às sessões.
action Especifica a ação do aplicativo usada com service e module para corresponder às sessões.
plan_stat Especifica a opção de estatísticas do plano de execução. Os valores válidos são NEVER, FIRST_EXECUTION, ALL_EXECUTIONS e ADAPTIVE. O valor-padrão é FIRST_EXECUTION.
sql_id Especifica o ID SQL. Quando especificado, o rastreamento é limitado à instrução SQL com esse ID SQL.

Exemplo

O exemplo a seguir permite o rastreamento SQL para uma instrução SQL específica e inclui informações de variável de vínculo e evento de espera:

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

O exemplo a seguir permite o rastreamento SQL para uma sessão diferente usando seu ID de sessão e número de série:

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

Observações de Uso

  • Você deve estar conectado como usuário ADMIN ou ter o privilégio EXECUTE no pacote DBMS_USERDIAG para executar este procedimento.
  • O rastreamento SQL é desativado por padrão. Ative um método de rastreamento para uma regra de rastreamento, execute a carga de trabalho e desative o rastreamento usando os mesmos atributos de identificação.
  • Especifique um método de rastreamento para uma regra de rastreamento. Você pode identificar alvos de rastreamento por ID SQL, sessão, identificador do cliente, serviço, módulo e ação.
  • Níveis de rastreamento mais altos, incluindo rastreamento de eventos de espera e variáveis de bind, podem gerar arquivos de rastreamento grandes e afetar o desempenho do aplicativo.
  • Um usuário local não pode rastrear uma sessão que pertença a um usuário comum.
  • DBMS_USERDIAG.ENABLE_SQL_TRACE_EVENT está obsoleto. Use SESSION_SQL_TRACE_ENABLE e SESSION_SQL_TRACE_DISABLE.

Consulte SESSION_SQL_TRACE_DISABLE Procedure para obter mais informações.

SESSION_SQL_TRACE_DISABLE Procedimento

Use o procedimento DBMS_USERDIAG.SESSION_SQL_TRACE_DISABLE para desativar o rastreamento SQL para a sessão atual ou para sessões que correspondam aos atributos de rastreamento especificados.

Desative o rastreamento após a conclusão da carga de trabalho. Quando o rastreamento está desativado, o banco de dados faz upload dos dados de rastreamento coletados para o bucket do Cloud Object Storage configurado para rastreamento SQL. Você pode revisar os dados de rastreamento no arquivo de rastreamento gerado ou na exibição SESSION_CLOUD_TRACE.

Sintaxe

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 Descrição
level Especifica o nível de rastreamento SQL. O Nível 1 coleta dados básicos de rastreamento. O nível 4 inclui informações de variável de vínculo e o nível 8 inclui informações de evento de espera. Os valores podem ser combinados. Esse parâmetro é opcional e assume como padrão 1.
sid Especifica o identificador de sessão da sessão de destino. O valor padrão, 0, identifica a sessão atual.
ser Especifica o número de série da sessão de destino. O valor padrão, 0, identifica a sessão atual. Use sid e ser juntos para identificar outra sessão.
instance_name Especifica a instância do banco de dados que contém a sessão de destino.
binds Especifica se as informações da variável de bind devem ser incluídas. Um valor diferente de zero inclui informações de variável de vínculo e adiciona rastreamento de nível 4. O valor padrão é 0.
waits Especifica se as informações do evento de espera devem ser incluídas. Um valor diferente de zero inclui informações de evento de espera e adiciona rastreamento de nível 8. O valor padrão é 0.
client_id Especifica o identificador do cliente usado para corresponder sessões entre instâncias do banco de dados.
service Especifica o serviço de banco de dados usado para corresponder às sessões.
module Especifica o módulo de aplicação usado com service para corresponder às sessões.
action Especifica a ação do aplicativo usada com service e module para corresponder às sessões.
plan_stat Especifica a opção de estatísticas do plano de execução. Os valores válidos são NEVER, FIRST_EXECUTION, ALL_EXECUTIONS e ADAPTIVE. O valor-padrão é FIRST_EXECUTION.
sql_id Especifica o ID SQL. Quando especificado, o rastreamento é limitado à instrução SQL com esse ID SQL.

Especifique os mesmos atributos de identificação usados quando você ativou o rastreamento.

Exemplo

O exemplo a seguir desativa o rastreamento SQL para a instrução SQL identificada por 5yka4rvxpbjc6:

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

O exemplo a seguir desativa o rastreamento SQL para a sessão identificada pelo ID de sessão 39 e número de série 15593:

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

Observações de Uso

  • Use os mesmos atributos de identificação no SESSION_SQL_TRACE_DISABLE que você usou no SESSION_SQL_TRACE_ENABLE.
  • Se a sessão de destino sair antes de o rastreamento ser desativado, o banco de dados fará upload do arquivo de rastreamento quando a sessão sair.
  • Os dados de rastreamento podem conter dados do aplicativo. Proteja o bucket e as credenciais do Cloud Object Storage adequadamente.
  • Os dados de rastreamento estão disponíveis na exibição SESSION_CLOUD_TRACE durante a sessão na qual o rastreamento foi ativado. Depois que a sessão é encerrada, os dados não ficam mais disponíveis na view.

Consulte SESSION_SQL_TRACE_ENABLE Procedure para obter mais informações.