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

Clases de espera y SQL recursivo

El perfil agrupado por la clase de espera de Oracle y el tiempo del SQL recursivo, que una sentencia dispara en funciones, triggers y en el diccionario.

Se aplica a: Traces 10046

Dos lecturas completan el perfil: el mismo tiempo agrupado por la clase de espera de Oracle, que muestra de qué tipo es la espera, y el tiempo del SQL recursivo, que muestra cuánto gasta una sentencia en las sentencias que dispara.

Qué muestra la sección

Justo debajo del perfil, la tabla Por clase de espera suma los componentes por la clase de Oracle (wait_class), con la CPU y el tiempo no contabilizado como clases propias. La suma de las filas también es el tiempo total. La clase de cada evento sigue la v$event_name de Oracle 19c; los eventos gc quedan en Cluster, y un evento que WaitScope no sabe clasificar queda en No clasificado.

Las clases del perfil
ClaseQué agrupa
IdleLa sesión esperando trabajo. En un trace de sesión, casi siempre es SQL*Net message from client: tiempo de la aplicación, de la red y del usuario.
NetworkDatos enviados y recibidos por SQL*Net, con la aplicación o con otra base de datos por dblink.
User I/OLecturas y escrituras de datos hechas por la propia sesión.
System I/OI/O de los procesos en segundo plano que la sesión esperó.
CommitLa escritura del redo en el COMMIT (log file sync).
ApplicationFila o tabla retenida por otra sesión, locks de la propia aplicación, errores devueltos.
ConcurrencyContención por estructuras internas: latches, mutexes, buffers.
ConfigurationUn límite de configuración: redo log, buffer cache, ITL, caché de secuencia, espacio.
SchedulerEl Resource Manager reteniendo la sesión.
ClusterBloques y mensajes intercambiados entre las instancias del RAC.
Administrative y OtherComandos de administración y eventos internos sin una clase más específica.
CPU y No contabilizadoLos componentes de CPU y los dos tiempos no contabilizados del perfil.
No clasificadoEventos que WaitScope no sabe clasificar.

Cómo leerla

Columnas de la tabla Por clase de espera
ColumnaQué indica
ClaseEl nombre de la clase. Haga clic en él para abrir la tarjeta, con Normal cuando, Preocupa cuando y Dónde mirar, como en el perfil.
Duración (s)La suma de los componentes de la clase.
% del totalLa parte del tiempo total, con la barra al lado.
OcurrenciasLa suma de las ocurrencias de los componentes. En blanco en No contabilizado.
Componentes principalesLos componentes que más pesan en la clase, en el orden del perfil.

Para un evento en No clasificado, su clase en la base de datos está en la v$event_name:

select name, wait_class
  from v$event_name
 where name = 'nombre del evento';

SQL recursivo

El SQL recursivo es la sentencia que ejecuta otra sentencia, y no la aplicación: el SQL dentro de funciones y procedimientos PL/SQL, el de los triggers y las consultas que la propia base de datos hace al diccionario. En el trace, tiene dep= mayor que 0. El informe muestra ese tiempo en cuatro lugares:

  • En Sentencias SQL, la columna Prof. es 0 en la sentencia invocada por la aplicación y 1 o más en la recursiva. La recursiva casi siempre tiene contribución cero: su tiempo ya está en la llamada de nivel 0 que la disparó. Su tiempo propio está en Inclusivo (s).
  • En el detalle de la sentencia, la tarjeta Profundidad dice invocada por la aplicación o SQL recursivo.
  • En el Perfil de la sentencia, la fila SQL recursivo (sentencias hijas), de tipo recursivo, suma la duración de las llamadas que disparó la sentencia. Su tarjeta dice que es normal en una sentencia PL/SQL que ejecuta otros SQL y que preocupa cuando suma mucho en un SELECT o DML simple: función PL/SQL llamada por fila, o trigger pesado.
  • Al final del detalle, SQL recursivo ejecutado por esta sentencia lista las sentencias hijas que más tardaron, de la que más tardó a la que menos, con un enlace al detalle de cada una.

En Sentencias por componente, el tiempo de cada componente queda en la sentencia que lo gastó: la lectura hecha por el SQL recursivo cuenta en la sentencia hija, no en la que la disparó.

Cuándo preocupa

Cuando estas clases pesan en el tiempo total, el Diagnóstico muestra un hallazgo propio, de gravedad media, con el enlace Ver perfil por clase. Los de Application, Concurrency y Commit suben a alta cuando la clase pesa mucho.

En el SQL recursivo, preocupan la fila SQL recursivo (sentencias hijas) alta en una sentencia simple y la sentencia recursiva ejecutada miles de veces con una fila por ejecución: es un bucle en PL/SQL (fila a fila en PL/SQL).

Adónde ir después

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