O alto do relatório diz quanto a sessão demorou, quando e onde: o tempo total, o período do trace, a contagem de chamadas, esperas e comandos, e o ambiente que o próprio trace descreve. É também de lá que você baixa o relatório.
O que a seção mostra
O Resumo é a primeira seção do índice Neste relatório. Acima dele, o cabeçalho traz o nome do arquivo analisado, a linha Analisado em com a data da análise, o tamanho e o número de linhas do trace, os botões Baixar HTML, Baixar JSON e Baixar PDF e o campo Comandos por lista. A seção tem:
- cinco números: Tempo total, Período, Chamadas ao banco, Esperas e Comandos distintos;
- o cartão Sessão e ambiente, com o banco, a instância, o servidor e a sessão que o cabeçalho do trace informa;
- o cartão da coleta, quando vários arquivos foram analisados juntos (coleta).
Quando a análise encontra algo que muda a leitura do tempo, como esperas sem tim num trace antigo, chamadas recursivas sem a chamada de nível 0 (trace cortado no meio) ou um limite da análise atingido, um aviso aparece no alto do relatório, antes do Resumo. Em trace com muitos comandos distintos, os avisos dizem o que a análise passou a somar pela forma do texto e o que passou a estimar (trace com muitos comandos).
No trace só de deadlock, os números são outros: Deadlocks (ORA-00060), Detectado em, Sessões envolvidas e Diagnóstico (deadlocks).
Como ler
| Número | O que é |
|---|---|
| Tempo total | O tempo de resposta (R): do início da primeira chamada ou espera até o último tim do trace, em segundos, com o mesmo valor em ms, s, min ou h logo abaixo. É a soma exata das linhas do perfil. Numa coleta com mais de uma sessão, é a soma do tempo de cada sessão. |
| Período | Início e fim do trace no relógio que o próprio trace grava nas linhas *** com data e hora. Com o ponteiro sobre o número, aparecem os dois instantes com microssegundos e fuso. Sem essas linhas, aparece não informado. |
| Chamadas ao banco | Todas as chamadas PARSE, EXEC, FETCH, CLOSE e as demais, em qualquer profundidade. Abaixo, quantas são de nível 0, as que a aplicação pediu; as outras são SQL recursivo. |
| Esperas | Quantas linhas WAIT o trace tem. Abaixo, os segundos de espera entre chamadas, como SQL*Net message from client. |
| Comandos distintos | Quantos comandos SQL e PL/SQL diferentes o trace tem, pelo sql_id ou, sem ele, pelo hash value. Comandos que só diferem nos literais contam um a um, mesmo quando as listas os mostram numa linha só. Quando a análise precisou estimar a conta, o número aparece como cerca de N. Abaixo, os commits e os rollbacks, contados nas linhas XCTEND. |
| Campo | De onde vem no trace |
|---|---|
| Banco | A linha Oracle Database do cabeçalho e a linha Version. |
| Instância | Instance name. |
| Servidor | Node name, com System name, Machine e Storage quando existem. |
| Sessão | SID e serial de *** SESSION ID, e o pid de Unix process pid. |
| Serviço | *** SERVICE NAME. |
| Módulo e Ação | Os valores diferentes de *** MODULE NAME e *** ACTION NAME, na ordem em que aparecem no trace. |
| Client ID e Driver | *** CLIENT ID e *** CLIENT DRIVER. |
| Container (PDB) | *** CONTAINER ID. |
| Unidade de tempo | microssegundos, ou centissegundos (trace antigo) nos traces do Oracle 7 e 8. |
| Arquivo no servidor | O caminho do trace no servidor do banco, da linha Trace file. Não aparece numa coleta. |
Campo que o trace não traz não aparece. Confira no cartão se o trace é da sessão e do banco certos antes de tirar conclusões.
Baixar o relatório
- Baixar HTML grava o arquivo
<nome do trace>-relatorio.html, que abre em qualquer navegador, sem a console: o estilo vai embutido e os cartões dos componentes e das operações do plano abrem do mesmo jeito. O arquivo abre com o resumo e as listas; o detalhe de um comando ou de um objeto só é montado quando você clica nele, e Voltar ao relatório leva de volta. No índice, Achar comando pelo sql_id lista os comandos detalhados cujosql_idcomeça pelo que você digita. O detalhe do objeto traz o tipo, a espera e onde ele aparece no trace; as consultas prontas ficam só na console. Para navegar, o arquivo precisa de JavaScript. - Baixar PDF abre numa aba nova o relatório inteiro, com o detalhe de todos os comandos e objetos no fim, e chama a impressão do navegador: escolha salvar em PDF. No HTML baixado, o botão Baixar PDF faz o mesmo com o arquivo.
- Baixar JSON grava
<nome do trace>-resultado.json, o resultado completo da análise, para levar a outra ferramenta. Pela API, você baixa o mesmo HTML e um JSON com as seções do relatório.
As listas de comandos mostram 10 comandos cada. Para mudar, digite outro número em Comandos por lista (de 1 a 300) ou marque todos, e clique em Aplicar. A escolha vale para as listas da página e para o HTML e o PDF baixados, que dizem no alto quantos comandos por lista levam.
Com a Privacidade dos relatórios ligada em Minha conta, a página, o HTML e o JSON baixados, a API e o app mostram o SQL com o texto entre aspas, os números usados como valor, ou os dois, trocados por ***, conforme as opções marcadas. A análise gravada não muda: desmarque as opções para ver o SQL original (literais escondidos).
Excluir a análise
A exclusão fica na página Análises, no Histórico, e não no relatório.
- Clique em Análises, no caminho do alto do relatório.
- Para excluir uma análise, clique em Excluir na linha dela.
- Para excluir várias, marque as caixas das linhas, ou Marcar todas, clique em Excluir selecionadas e confirme.
Resultado: a página mostra Análise excluída. ou quantas análises foram excluídas, e o endereço do relatório passa a responder Análise não encontrada.
O Excluir da linha apaga na hora, sem pedir confirmação, e não dá para desfazer. O trace já foi apagado no fim da análise: para ter o relatório de novo, envie o arquivo outra vez. O HTML e o JSON que você baixou continuam com você.
Sem exclusão, o relatório some sozinho quando vence o prazo de guarda (retenção e privacidade).
Quando preocupa
- O Período começa bem antes ou termina bem depois da operação que você queria medir: parte do tempo total é de antes ou de depois dela.
- O Tempo total é bem menor que a demora que o usuário sentiu: o trace pegou só parte da operação, ou outra sessão.
- Chamadas ao banco muito acima das de nível 0: há muito SQL recursivo, de funções, triggers ou consultas ao dicionário.
- Esperas com muitos segundos entre chamadas: o tempo pode estar fora do banco (sessão esperando a aplicação).
- Rollbacks acima de zero: confira se o trabalho desfeito era esperado (rollback).
- Um aviso no alto do relatório: leia antes do resto, porque ele diz o que a análise não conseguiu medir.
Para onde ir depois
- Resumo do relatório de exemplo: tempo total de 0,007 s (7,0 ms), 6 chamadas ao banco, 4 delas de nível 0, 4 esperas e 2 comandos distintos.
- Diagnóstico, a seção seguinte do relatório.
- Perfil do tempo de resposta, que divide o tempo total em partes.