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
ADMINou ter o privilégioEXECUTEno pacoteDBMS_USERDIAGpara 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_EVENTestá obsoleto. UseSESSION_SQL_TRACE_ENABLEeSESSION_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_DISABLEque você usou noSESSION_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_TRACEdurante 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.