Usar Rastreamento SQL no Autonomous Database no Exadata Infrastructure Dedicado
Você pode usar o Rastreamento de SQL com o Autonomous Database on Dedicated Exadata Infrastructure para ajudar a identificar a origem de uma carga de trabalho excessiva do banco de dados, como uma instrução SQL de carga alta em seu aplicativo.
Sobre o Rastreamento SQL
Quando uma operação de aplicativo leva mais tempo do que o esperado, obter um rastreamento de todas as instruções SQL executadas como parte dessa operação com detalhes como tempo gasto por essa instrução SQL nas fases de parsing, execução e extração ajudará você a identificar e resolver a causa do problema de desempenho. Você pode usar o rastreamento de SQL em um Autonomous Database para fazer isso.
- Comece configurando o banco de dados para salvar arquivos de Rastreamento SQL. Consulte Configurar Rastreamento de SQL no Autonomous Database para obter mais informações.
- Em seguida, ative o rastreamento SQL. Consulte Ativar Rastreamento de SQL no Autonomous Database.
Observação:
A ativação do rastreamento de SQL pode prejudicar o desempenho do aplicativo para a sessão enquanto a coleta de rastreamento está ativada. Esse impacto no desempenho é esperado por causa da sobrecarga de coletar e salvar dados de rastreamento. - Para interromper a coleta de dados de rastreamento SQL, você deve desativar o rastreamento SQL. Consulte Ativar Rastreamento de SQL.
- Quando você desativa o rastreamento de SQL, os dados de rastreamento coletados enquanto a sessão é executada com o rastreamento ativado são gravados na view
SESSION_CLOUD_TRACE
em sua sessão e em um arquivo de rastreamento no bucket, que você configura ao configurar o rastreamento de SQL. Você tem duas opções para exibir os dados de rastreamento:- Exiba e analise dados de Rastreamento de SQL no arquivo de rastreamento salvo no Armazenamento de Objetos na Nuvem. Consulte Exibir Arquivo de Rastreamento Salvo no Armazenamento de Objetos na Nuvem no Autonomous Database para obter mais informações.
- Exiba e analise os dados do Rastreamento de SQL salvos na view
SESSION_CLOUD_TRACE
. Consulte Exibir Dados de Rastreamento na View SESSION_CLOUD_TRACE no Autonomous Database para obter mais informações.
Configurar Rastreamento de SQL no Autonomous Database
Ativar o Rastreamento de SQL no Autonomous Database
Observação:
A ativação do rastreamento de SQL pode prejudicar o desempenho do aplicativo para a sessão enquanto a coleta de rastreamento está ativada. Esse impacto no desempenho é esperado por causa da sobrecarga de coletar e salvar dados de rastreamento.Para ativar o rastreamento de SQL para uma sessão de banco de dados, faça o seguinte:
Desativar Rastreamento SQL
Exibir Arquivo de Rastreamento Salvo no Armazenamento de Objetos na Nuvem no Autonomous Database
DEFAULT_LOGGING_BUCKET
.
O recurso de Rastreamento de SQL grava os dados de rastreamento coletados na sessão no Armazenamento de Objetos na Nuvem no seguinte formato:
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
Os componentes do nome do arquivo são:
-
default_logging_bucket: é o valor da propriedade de banco de dados
DEFAULT_LOGGING_BUCKET
. Consulte Configurar Rastreamento de SQL no Autonomous Database para obter mais informações. -
clientID
: é o identificador de cliente. Consulte Ativar Rastreamento de SQL no Autonomous Database para obter mais informações. -
moduleName
: é o nome do módulo. Consulte Ativar Rastreamento de SQL no Autonomous Database para obter mais informações. -
numID1
_numID2
: são dois identificadores fornecidos pelo recurso de Rastreamento de SQL. Os valores numéricosnumID1
enumID2
distinguem exclusivamente cada nome de arquivo de rastreamento de outras sessões usando o rastreamento e criando arquivos de rastreamento no mesmo bucket do Cloud Object Storage.Quando o serviço de banco de dados suporta paralelismo e uma sessão executa uma consulta paralela, o recurso de Rastreamento de SQL pode produzir vários arquivos de rastreamento com diferentes valores
numID1
enumID2
.
Observação:
Quando o rastreamento de SQL é ativado e desativado várias vezes dentro da mesma sessão, cada iteração de rastreamento gera um arquivo de rastreamento separado no Armazenamento de Objetos na Nuvem. Para evitar a substituição de rastreamentos anteriores gerados na sessão, os arquivos gerados subsequentemente seguem a mesma convenção de nomenclatura e adicionam um sufixo numérico ao nome do arquivo de rastreamento. Esse sufixo numérico começa com o número 1 e é incrementado em 1 para cada iteração de rastreamento depois disso.Por exemplo, veja a seguinte amostra de nome de arquivo de rastreamento gerado quando você define o identificador de cliente como "sql_test"
e o nome do módulo como "modname"
:
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
Você pode executar TKPROF
para converter o arquivo de rastreamento em um arquivo de saída legível.
Exibir Dados de Rastreamento na View SESSION_CLOUD_TRACE no Autonomous Database
SESSION_CLOUD_TRACE
na sessão em que o rastreamento foi ativado.
SESSION_CLOUD_TRACE
. A view SESSION_CLOUD_TRACE
inclui duas colunas: ROW_NUMBER
e TRACE
.DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
A coluna ROW_NUMBER
especifica a ordenação dos dados de rastreamento encontrados na coluna TRACE
. Cada linha da saída de rastreamento gravada em um arquivo de rastreamento se torna uma linha na tabela e está disponível na coluna TRACE
.
Após a desativação do rastreamento SQL da sessão, você poderá executar consultas na view SESSION_CLOUD_TRACE
.
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
Os dados em SESSION_CLOUD_TRACE
persistem durante a sessão. Após você fazer log-out ou fechar a sessão, os dados não estarão mais disponíveis.
Se o Rastreamento de SQL for ativado e desativado várias vezes na mesma sessão, SESSION_CLOUD_TRACE
mostrará os dados de rastreamento de todas as iterações cumulativamente. Portanto, a reativação do rastreamento em uma sessão após a desativação anterior do rastreamento não remove os dados de rastreamento produzidos pela iteração anterior.