A lista das chamadas mais longas mostra as chamadas da aplicação que mais demoraram, uma a uma, com o instante em que cada uma começou e a linha dela no trace.
O que a seção mostra
A seção Chamadas de nível 0 mais longas (no índice, Chamadas mais longas) lista as chamadas de nível 0 mais longas, as que a aplicação pediu, da mais longa para a mais curta. As chamadas do SQL recursivo não entram: o tempo delas já está na chamada de nível 0 que as disparou. Sem nenhuma chamada de nível 0, a seção mostra Nenhuma chamada de nível 0.
As chamadas de uma mesma forma, de comandos que só diferem nos literais, viram uma linha só, a da chamada mais longa, com o selo N variantes antes do texto do comando. Assim, uma forma com muitas chamadas parecidas não ocupa a lista inteira. As outras chamadas da forma não aparecem aqui; o tempo de todas está na linha da forma em Comandos SQL (as variantes nas listas).
Como ler
| Coluna | O que diz |
|---|---|
| Chamada | O tipo: PARSE, EXEC, FETCH e os demais. |
| Duração (s) | A duração da chamada (e=). |
| CPU (s) | A CPU da chamada (c=), com a do SQL recursivo que ela disparou. |
| Início (+s) | Quantos segundos depois do início do trace a chamada começou. |
| Linha | A linha da chamada no arquivo de trace. Abra nessa linha o arquivo que você enviou para ver as esperas que vieram antes dela. Numa coleta, é a linha do trace montado, não a do arquivo original. |
| LIO | As leituras lógicas da chamada (cr= mais cu=). |
| PIO | Os blocos lidos do disco (p=). |
| Linhas | As linhas da chamada (r=). |
| Comando | O número e o começo do texto do comando, com link para o detalhe. Numa forma, o texto mostra :s e :n no lugar dos literais, e o selo N variantes vem antes dele. |
Duração bem acima da CPU quer dizer que a chamada passou o resto do tempo esperando, ou em tempo que o trace não explica. O perfil do comando diz qual das duas.
No relatório de exemplo, a chamada mais longa é o FETCH da linha 31 do trace, com 0,001600 s de duração e 0,000200 s de CPU, 10 leituras lógicas e 1 bloco lido do disco.
Quando preocupa
- Uma ou poucas chamadas concentram o tempo: o problema está no comando delas. Vá ao detalhe e ao plano.
- Muitas chamadas longas do mesmo comando: o comando é lento sempre, não por acaso.
- Duração muito acima da CPU mais as esperas: tempo não contabilizado dentro da chamada, que costuma ser fila de CPU no servidor (tempo não contabilizado dentro das chamadas).
- Intervalos grandes entre o Início (+s) de chamadas seguidas, sem espera que os explique: o trace tem lacunas (lacunas entre chamadas).
Quando há chamadas de nível 0 lentas, o Diagnóstico mostra o achado de informação chamadas lentas, com quantas foram e o link Ver chamadas mais longas.
Para onde ir depois
- Chamadas mais longas do relatório de exemplo.
- Distribuição de latência, para ver se as chamadas longas são exceção ou regra.
- Detalhe do comando da chamada.