Saltar al contenido
WaitScope Entrar Solicitar acceso (por correo) Menú

Tiempo no contabilizado dentro de las llamadas

El hallazgo NAO_CONTABILIZADO_DENTRO aparece cuando mucho tiempo queda en las llamadas sin CPU ni espera: trace sin esperas, cola de CPU o swap.

Se aplica a: Traces 10046, con o sin esperas

Tiempo dentro de las llamadas que no es CPU ni espera registrada significa que la sesión estaba en curso sin que Oracle midiera lo que hacía. Antes de sacar conclusiones sobre el resto del perfil, ese tiempo necesita una explicación.

Síntomas

En el Diagnóstico aparece el hallazgo Mucho tiempo dentro de las llamadas sin CPU ni espera registrada (NAO_CONTABILIZADO_DENTRO). El texto cita las causas frecuentes, pide revisar la carga de CPU del servidor en el período y termina con Ver en el perfil.

El hallazgo aparece cuando el componente tiempo no contabilizado dentro de las llamadas ocupa una parte grande del tiempo total. La gravedad es siempre alta. Aunque ese componente sea el mayor del perfil, no genera también el hallazgo de componente dominante: este hallazgo ya trata ese tiempo.

Causa

Cada llamada registra la duración (e=) y la CPU (c=). Este componente es la parte de la duración que no es CPU, ni espera registrada dentro de la llamada, ni llamada hija. Crece cuando:

  • El trace no tiene esperas. En los niveles 1 y 4 del 10046 no hay líneas WAIT: el tiempo de lectura de disco, de lock y de cualquier otra espera dentro de las llamadas pasa a ser no contabilizado.
  • Hay cola de CPU. Más procesos listos para ejecutarse que núcleos: la sesión espera su turno en la CPU, y ese tiempo no es CPU ni espera de Oracle.
  • El servidor pagina memoria. Sin memoria libre, el sistema intercambia páginas con el disco (swap) y el proceso queda detenido.
  • Hay código sin instrumentación de espera. Son partes del código que Oracle no mide como espera; el texto del hallazgo cita bucles largos de PL/SQL.

Solución

  1. Compruebe si el trace tiene esperas: Esperas igual a 0 en el Resumen indica un trace sin esperas. Genérelo de nuevo en el nivel 8 o 12 (niveles del 10046).
  2. Revise la carga de CPU del servidor en el Período del trace. La cola de CPU aparece como procesos listos por encima del número de núcleos, por ejemplo en la columna r del vmstat o en el sar -q. Para un período que ya pasó, use el historial del sar o del monitoreo del servidor.
    vmstat 5
    sar -q 5 12
  3. Revise la memoria en el mismo período: páginas intercambiadas con el disco (columnas si y so del vmstat) indican paginación.
  4. Busque dónde se pierde el tiempo. En Llamadas de nivel 0 más largas, busque llamadas con Duración (s) muy por encima de CPU (s); en Sentencias principales por componente, abra el grupo tiempo no contabilizado dentro de las llamadas.
  5. Con cola de CPU o paginación, la corrección está en el servidor: menos procesos simultáneos, más CPU o memoria, o SGA y PGA dimensionadas para caber en la memoria física.
  6. Si el tiempo se concentra en un bloque PL/SQL y el servidor no estaba sobrecargado, investigue el código de ese bloque.

Cómo confirmar

Genere un trace nuevo de la misma operación, con esperas y en un período en que la causa ya esté corregida. El componente tiempo no contabilizado dentro de las llamadas debe quedar pequeño, el tiempo que ocultaba aparece como espera o CPU en los otros componentes, y el hallazgo desaparece.

Si usted solo activó las esperas, el Tiempo total puede no cambiar: el tiempo solo ganó un nombre. Vuelva al perfil y ataque el mayor componente.

En el informe

En el informe de ejemplo, este componente suma el 2,3% del tiempo total, sin hallazgo. Los enlaces abren las secciones del ejemplo:

Actualizado el 29/10/2026. Informar un error en esta página