A tabela de tipos de chamada soma as chamadas da sessão por tipo, como o total do tkprof: quantas houve, quanto tempo levaram, quanto leram e quantas linhas trouxeram.
O que a seção mostra
A seção Tipos de chamada tem uma linha para cada tipo de chamada do trace: PARSE, EXEC, FETCH, CLOSE e, quando aparecem, UNMAP, SORT UNMAP e as chamadas de LOB, como LOBREAD. Cada linha soma todas as chamadas daquele tipo, as da aplicação e as do SQL recursivo. A ordem é pela duração, da maior para a menor.
Como ler
| Coluna | O que diz |
|---|---|
| Chamada | O tipo de chamada. |
| Quantidade | Quantas chamadas daquele tipo o trace tem. |
| CPU (s) | A soma de c=. |
| Duração (s) | A soma de e=. |
| Disco (PIO) | Blocos lidos do disco (p=). |
| Consistente (CR) | Leituras lógicas em modo consistente (cr=), as das consultas. |
| Corrente (CU) | Leituras lógicas em modo corrente (cu=), típicas de DML. |
| Linhas | Linhas devolvidas ou processadas (r=). |
| Misses | Falhas na library cache (mis=). No PARSE, cada miss é um hard parse. |
A duração de uma chamada que disparou SQL recursivo já contém a das chamadas filhas, que também entram na própria linha. Com SQL recursivo, a soma de Duração (s) conta esse tempo duas vezes e pode passar do tempo total. Para dividir o tempo sem contar duas vezes, use o perfil.
No relatório de exemplo, a linha FETCH tem 2 chamadas, uma do comando #1 e uma do recursivo #2, com 2 blocos lidos do disco, 13 leituras consistentes e 2 linhas. A linha PARSE tem 1 chamada com 1 miss: um hard parse.
Quando preocupa
- PARSE com Misses perto da Quantidade: quase todo PARSE é hard parse. Quando os hard parses pesam na sessão, o Diagnóstico mostra muitos hard parses, com o link Ver tipos de chamada ou, se houver comandos que só diferem nos literais, Ver textos compartilháveis.
- FETCH com Linhas pouco acima da Quantidade: cada chamada traz poucas linhas. O achado muitos FETCH com poucas linhas olha só os FETCH de nível 0, os da aplicação; esta tabela soma também os do SQL recursivo.
- PARSE com Quantidade perto da de EXEC: o cursor é aberto a cada execução. O detalhe de cada comando mostra qual (um PARSE a cada execução).
- CPU do FETCH alta, com Consistente (CR) muito acima de Linhas: leituras lógicas demais, em geral um plano que lê blocos que não precisa.
Para onde ir depois
- Tipos de chamada do relatório de exemplo.
- Distribuição de latência, com a tabela da duração de cada tipo de chamada, como FETCH (duração e da chamada).
- Detalhe do comando, com as mesmas colunas para um comando só.