Neste tutorial você envia pela console o trace sintético do WaitScope, o mesmo do relatório de exemplo publicado, e confere cada parte do resultado com esse exemplo. No fim, você terá:
- criado uma análise e acompanhado o processamento;
- lido o tempo total e o perfil do tempo de resposta;
- aberto o diagnóstico e o plano do comando que mais pesou.
Antes de começar
- Uma conta na console. No acesso antecipado, peça por e-mail para contato@waitscope.com. A conta vem com usuário e senha provisória, que você troca no primeiro acesso.
- Um app autenticador no celular. A console pede o código de 6 dígitos dele em todo login. Quando a console oferece, o código também pode vir por e-mail.
- O trace sintético salvo no computador como
exemplo-10046.trc. Ele tem 36 linhas e tempos de teste, sem dado de banco real.
Passo 1: entrar na console
- Abra https://app.waitscope.com/ no navegador.
- Digite Usuário e Senha e clique em Entrar.
- No primeiro acesso, cadastre o app autenticador na página Configure a verificação em duas etapas e clique em Confirmar o app.
- Guarde os códigos de recuperação fora do computador e clique em Entrar de novo.
- Entre de novo com usuário e senha e digite o código do app em Código de acesso.
- Se a console pedir, troque a senha provisória em Minha senha, com 12 caracteres ou mais.
- Marque Aceito os Termos de Serviço e li a Política de Privacidade e clique em Continuar.
Resultado: a página Análises abre, com o quadro Nova análise e, no Histórico, Nenhuma análise ainda.
Passo 2: criar a análise
- No quadro Nova análise, clique em Escolher arquivos.
- Escolha o
exemplo-10046.trc. Se preferir, arraste o arquivo para Arraste os traces para cá. - Confira o resumo abaixo dos botões: 1 arquivo escolhido (1,8 KiB).
- Clique em Enviar e analisar.
Resultado: a barra de envio chega ao fim, aparece Arquivo recebido. Abrindo o resultado... e a página da análise abre. Com um arquivo só, a console não pergunta se os traces são do mesmo processo.
Passo 3: acompanhar o processamento
A página da análise mostra o nome do arquivo, a situação e uma barra de andamento. Na fila, a mensagem é Na fila. O processamento começa em instantes. Durante a leitura, aparece a porcentagem do arquivo já lida, como Processando no servidor: 40% do arquivo lido. A página pergunta a situação ao servidor a cada 2 segundos, sem recarregar.
Você pode sair da página: a análise continua no servidor, e o Histórico da página Análises mostra a situação dela, na fila, processando, concluído ou erro.
Resultado: quando a análise termina, a página abre o relatório sozinha. Com um trace pequeno como este, o relatório pode abrir direto.
Passo 4: ler o tempo total e o perfil
- No alto do relatório, em Resumo, leia o Tempo total.
- Desça até Perfil do tempo de resposta e leia a coluna % do total.
- Clique no nome
SQL*Net message from clientpara abrir o cartão do componente.
Resultado: o Tempo total é 0,007 s, ou 7,0 ms. O perfil começa por SQL*Net message from client, com 71,3%, seguido de db file sequential read, com 18,5%, e a linha Total fecha em 100,0. O cartão explica o componente, quando ele é normal e quando preocupa. Compare com o Resumo e o perfil do relatório de exemplo.
Passo 5: abrir o diagnóstico
- No índice Neste relatório, clique em Diagnóstico.
- Leia os dois achados.
- No primeiro, clique em Ver no perfil.
Resultado: os dois achados são de severidade média. O primeiro, A sessão passou a maior parte do tempo esperando a aplicação, soma 71,3% do tempo total, e o link leva à linha do componente no perfil. O segundo, Comando #1: a operação 1 do plano concentra 98,0% do tempo, soma 24,6% e traz o link Ver no plano do comando #1. Compare com o Diagnóstico do exemplo.
O primeiro achado vem antes de qualquer SQL: a maior parte do tempo foi a sessão esperando o próximo pedido da aplicação, e ajuste de SQL não reduz esse tempo (sessão esperando a aplicação).
Passo 6: abrir o comando com o plano
- Volte ao Diagnóstico e, no segundo achado, clique em Ver no plano do comando #1.
- Na página do comando, leia Peso no tempo total.
- Desça até Plano de execução e leia o quadro Onde o plano gasta.
Resultado: o comando #1 é um SELECT com 95,9% do tempo total. No plano, a operação 1, TABLE ACCESS BY INDEX ROWID T, concentra 98,0% do tempo e 80,0% das leituras lógicas, e aparece em destaque na tabela. Compare com o detalhe do comando #1 e com a operação 1 do plano no exemplo.
O exemplo publicado é o relatório baixado com Baixar HTML: nele, o detalhe de cada comando abre no lugar do relatório quando você clica, e Voltar ao relatório leva de volta; na console, ele abre numa página própria. Na sua análise e no exemplo, o texto do comando #1 aparece como select * from t where id=***, e não id=1, como no trace: a conta vem com as duas opções de Privacidade dos relatórios ligadas, e o número usado como valor vira *** na página, no relatório baixado, no app e na API. Para ver o número, desmarque Esconder os números usados como valor no SQL (id = ***) em Minha conta e clique em Salvar (literais escondidos).
Se não aparecer
- A console mostra Esse arquivo já tinha sido analisado em ... A sua conta já enviou este trace, e a console abriu o relatório que já existe. Para analisar de novo, exclua a análise no Histórico e envie outra vez (envio repetido).
- A análise termina com o erro o arquivo não parece um trace Oracle (evento 10046). O arquivo salvo não é o trace. Baixe de novo pelo link do trace sintético.
- Os números não batem com o exemplo. Confira na linha abaixo do nome do arquivo, no alto do relatório, se aparecem 1,8 KiB e 36 linhas: outro arquivo dá outro relatório.
- Aparece Escolha pelo menos um arquivo de trace. Nenhum arquivo foi escolhido, ou o arquivo escolhido está vazio.
- Você não tem o app autenticador à mão. Na página Código de acesso, digite um dos códigos de recuperação, no formato xxxxx-xxxxx.
Próximos passos
- Ligue o trace na sessão da operação que você quer entender.
- Ache o arquivo no servidor e envie pelo navegador.
- Leia o relatório seção por seção, a partir do Resumo e do perfil, e siga o método para chegar à causa.
- Antes do fim do prazo, baixe o relatório com Baixar HTML ou Baixar JSON (prazo do relatório).