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

Tempo não contabilizado dentro das chamadas

O achado NAO_CONTABILIZADO_DENTRO aparece quando muito tempo fica nas chamadas sem CPU nem espera: trace sem esperas, fila de CPU ou swap.

Vale para: Traces 10046, com ou sem esperas

Tempo dentro das chamadas que não é CPU nem espera registrada quer dizer que a sessão estava em andamento sem que o Oracle medisse o que ela fazia. Antes de conclusões sobre o resto do perfil, esse tempo precisa de explicação.

Sintomas

No Diagnóstico, aparece o achado Muito tempo dentro das chamadas sem CPU nem espera registrada (NAO_CONTABILIZADO_DENTRO). O texto cita as causas comuns, pede para conferir a carga de CPU do servidor no período e termina com Ver no perfil.

O achado aparece quando o componente tempo não contabilizado dentro das chamadas ocupa uma parte grande do tempo total. A severidade é sempre alta. Mesmo quando esse componente é o maior do perfil, ele não gera também o achado de componente dominante: este achado já trata desse tempo.

Causa

Cada chamada registra a duração (e=) e a CPU (c=). Este componente é a parte da duração que não é CPU, nem espera registrada dentro da chamada, nem chamada filha. Ele cresce quando:

  • O trace não tem esperas. Nos níveis 1 e 4 do 10046 não há linhas WAIT: o tempo de leitura de disco, de lock e de toda outra espera dentro das chamadas vira não contabilizado.
  • Há fila de CPU. Mais processos prontos para rodar do que núcleos: a sessão espera a vez na CPU, e esse tempo não é CPU nem espera do Oracle.
  • O servidor pagina memória. Sem memória livre, o sistema troca páginas com o disco (swap) e o processo fica parado.
  • Há código sem instrumentação de espera. São trechos que o Oracle não mede como espera; o texto do achado cita laços longos de PL/SQL.

Resolução

  1. Confira se o trace tem esperas: Esperas igual a 0 no Resumo indica trace sem esperas. Gere de novo no nível 8 ou 12 (níveis do 10046).
  2. Confira a carga de CPU do servidor no Período do trace. Fila de CPU aparece como processos prontos acima do número de núcleos, por exemplo na coluna r do vmstat ou no sar -q. Para um período que já passou, use o histórico do sar ou da monitoração do servidor.
    vmstat 5
    sar -q 5 12
  3. Confira a memória no mesmo período: páginas trocadas com o disco (colunas si e so do vmstat) indicam paginação.
  4. Ache onde o tempo some. Em Chamadas de nível 0 mais longas, procure chamadas com Duração (s) muito acima de CPU (s); em Principais comandos por componente, abra o grupo tempo não contabilizado dentro das chamadas.
  5. Com fila de CPU ou paginação, a correção está no servidor: menos processos ao mesmo tempo, mais CPU ou memória, ou SGA e PGA dimensionadas para caber na memória física.
  6. Se o tempo se concentra num bloco PL/SQL e o servidor não estava sobrecarregado, investigue o código desse bloco.

Como confirmar

Gere um trace novo da mesma operação, com esperas e num período em que a causa foi corrigida. O componente tempo não contabilizado dentro das chamadas deve ficar pequeno, e o tempo que ele escondia aparece como espera ou CPU nos outros componentes, e o achado some.

Se você só ligou as esperas, o Tempo total pode não mudar: o tempo apenas ganhou nome. Volte ao perfil e ataque o maior componente.

No relatório

No relatório de exemplo, este componente soma 2,3% do tempo total, sem achado. Os links abrem as seções do exemplo:

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