Pular para o conteúdo
WaitScope Entrar Solicitar acesso (por e-mail) Menu

Chamadas de nível 0 lentas

O achado CHAMADAS_LENTAS conta as chamadas da aplicação que levaram 0,1 s ou mais e leva à lista das mais longas, de onde se chega ao comando.

Vale para: Traces 10046

Uma chamada de nível 0 é um pedido da aplicação ao banco: a duração dela é o que a aplicação espera numa ida e volta. O achado conta as que levaram 0,1 s ou mais e leva à lista das mais longas, por onde se chega ao comando que demorou.

Sintomas

No Diagnóstico, aparece o achado n chamadas de nível 0 acima de 0,100 s (CHAMADAS_LENTAS), ou 1 chamada de nível 0 acima de 0,100 s. O texto diz que a lista das mais longas está no relatório e termina com Ver chamadas mais longas.

O achado aparece quando o trace tem pelo menos uma chamada de nível 0 (dep=0: PARSE, EXEC, FETCH e as demais que a aplicação pede) com duração (e=) de 0,1 s ou mais, o limite que o título mostra. O título diz "acima de", mas a conta inclui a chamada de 0,1 s exatos. A severidade é sempre informação, e o achado não mostra percentual do tempo total.

A contagem cobre todas as chamadas de nível 0 do trace. A seção Chamadas de nível 0 mais longas mostra só as mais longas e pode trazer também chamadas abaixo do limite, quando poucas passam dele.

Causa

A chamada demorou porque fez muito trabalho (leituras lógicas, leitura de disco), porque esperou alguma coisa dentro dela (lock, disco, outro banco por database link) ou porque rodou SQL recursivo, como num bloco PL/SQL. O achado não diz qual: ele é um registro, e a causa está no comando da chamada.

Em processamento em lote, chamadas longas são esperadas. Numa tela, o usuário sente cada uma delas.

Resolução

  1. Clique em Ver chamadas mais longas.

    Resultado: a tabela vem em ordem de Duração (s), com a chamada, o comando e a linha do trace de cada uma.

  2. Compare Duração (s) com CPU (s). CPU perto da duração quer dizer trabalho no banco; CPU bem menor, espera dentro da chamada.
  3. Veja LIO, PIO e Linhas. Muitas leituras lógicas para poucas linhas apontam para o plano; PIO alto, para leitura de disco.
  4. Clique no comando (#n) para abrir o detalhe dele. O Perfil do comando mostra se o tempo foi CPU, espera ou SQL recursivo; num bloco PL/SQL, SQL recursivo executado por este comando lista os filhos.
  5. Use Início (+s) para ver em que momento do trace a chamada aconteceu. Várias chamadas lentas no mesmo momento costumam ter causa de fora, como lock ou pico de carga.
  6. Use Linha para ler o trace no ponto da chamada: as linhas WAIT logo acima dela são as esperas dentro da chamada. Troque 1000 pelo número da coluna:
    head -n 1000 arquivo.trc | tail -n 30
  7. Siga para a página do achado que explica o tempo do comando, como operação que concentra o plano, leitura lenta, bloqueio ou linha a linha em PL/SQL.

As chamadas de variantes do mesmo SQL, que só diferem em literais, viram uma linha só na lista, a da chamada mais longa, com o selo N variantes antes do texto do comando (chamadas mais longas). A contagem do achado não muda: cada chamada lenta conta, também as da forma que a lista resume numa linha.

Como confirmar

  1. Corrija a causa do comando que mais aparece na lista.
  2. Ligue o trace da mesma operação, nas mesmas condições (ligar o trace com o DBMS_MONITOR).
  3. Envie o arquivo novo e abra o relatório.
  4. Compare o número no título do achado e as durações no topo de Chamadas de nível 0 mais longas.

Resultado: o número de chamadas lentas e as maiores durações caem. Se nenhuma chamada chega a 0,1 s, o achado some.

No relatório

No relatório de exemplo, todas as chamadas ficam abaixo de 0,1 s e o achado não aparece; os links abrem as mesmas seções nele.

Atualizado em 29/10/2026. Relatar erro nesta página