Caso 1: tiempo entre llamadas y SQL fila a fila. Informe de ejemplo, generado por WaitScope a partir de un fragmento anonimizado de un trace real. Ver el caso 2 Volver a la página de WaitScope

WaitScope

caso-1.trc

Analizado el 29/10/2026 10:19:46 · 174,0 MiB · 1.997.223 líneas · hasta 10 sentencias por lista

718792 llamadas recursivas sin llamada de nivel 0 correspondiente (trace iniciado o cortado en medio de una llamada)
Tiempo total
50,833 s
50,8 s
Período
16/01/2015 19:36:52
hasta 19:37:43
Llamadas a la base de datos
719.114
6 de nivel 0
Esperas
20.320
0,166 s entre llamadas
Sentencias distintas
1.977
2 commits · 0 rollbacks

Sesión y entorno

Base de datos
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
Instancia
INST_01
Servidor
MAQ_01 · Linux · x86_64
Sesión
151.464 · pid 79628
Servicio
SYS$USERS
Módulo
MOD_01
Acción
Unidad de tiempo
microsegundos
Archivo en el servidor
caso1.trc

Diagnóstico

Patrones que suelen explicar lo que muestra el trace, en orden de gravedad. Son pistas para el análisis, no conclusiones.

media tiempo no contabilizado entre llamadas domina el tiempo de respuesta 73,6% del tiempo total

El 73,6% del tiempo total (37,419 s) viene de un único componente. El análisis empieza por él. Ver en el perfil

media Huecos de tiempo entre llamadas 73,6% del tiempo total

Tiempo entre llamadas de nivel 0 sin espera registrada. El trace pudo activarse y desactivarse en medio de la sesión, o el proceso estuvo detenido fuera de la base de datos. Ver en el perfil

media Sentencia #1 ejecutada 89.112 veces 9,7% del tiempo total

SQL recursivo ejecutado una vez por fila, típico de un bucle en PL/SQL. El procesamiento en conjunto (un único SQL o FORALL) suele reducir mucho el tiempo. Ver sentencia #1

media Sentencia #2 ejecutada 89.112 veces 9,5% del tiempo total

SQL recursivo ejecutado una vez por fila, típico de un bucle en PL/SQL. El procesamiento en conjunto (un único SQL o FORALL) suele reducir mucho el tiempo. Ver sentencia #2

baja Sentencia #1: la operación 2 del plan concentra el 100,0% de las lecturas lógicas 9,7% del tiempo total

Operación TABLE ACCESS FULL TAB_0005. Lee el objeto completo: compruebe si el filtro es selectivo y si hay un índice para él. Las operaciones están resaltadas en el plan, en el detalle de la sentencia. Ver en el plan de la sentencia #1

baja Sentencia #2: la operación 2 del plan concentra el 100,0% de las lecturas lógicas 9,5% del tiempo total

Operación TABLE ACCESS FULL TAB_0005. Lee el objeto completo: compruebe si el filtro es selectivo y si hay un índice para él. Las operaciones están resaltadas en el plan, en el detalle de la sentencia. Ver en el plan de la sentencia #2

baja Sentencia #1: un PARSE en cada ejecución (89.112 PARSE, 89.112 EXEC) 3,1% del tiempo total

El cursor se abre y se cierra en cada uso. Mantener el cursor abierto en la aplicación (caché de statements del driver) o session_cached_cursors evita el PARSE repetido. Ver sentencia #1

baja Sentencia #2: un PARSE en cada ejecución (89.112 PARSE, 89.112 EXEC) 3,1% del tiempo total

El cursor se abre y se cierra en cada uso. Mantener el cursor abierto en la aplicación (caché de statements del driver) o session_cached_cursors evita el PARSE repetido. Ver sentencia #2

baja Sentencia #3: 1.217 variantes del mismo SQL, solo con literales diferentes 2,5% del tiempo total

La aplicación escribe los valores en el texto del SQL en lugar de usar bind variables, y cada valor diferente se convierte en una sentencia nueva para la base de datos. Los 1.217 PARSE de las variantes, 1.217 de ellos hard parse, tardaron 1,295 s (2,5% del tiempo total); con todas las 3.651 llamadas y el SQL recursivo, las variantes suman 1,451 s. La corrección es usar bind variables en la aplicación. CURSOR_SHARING=FORCE en la base de datos reduce los hard parse mientras la aplicación no cambia, pero es solo un paliativo. Ver sentencia #3

Perfil del tiempo de respuesta

Cada fila es una parte del tiempo total; sumadas, dan 100%. Haga clic en el nombre de un componente o de una clase para ver qué significa ese tiempo, cuándo es normal, cuándo indica un problema y dónde revisarlo en el informe. El tiempo no contabilizado es lo que el trace no explica por CPU ni por esperas: dentro de las llamadas, suele ser cola de CPU o código sin instrumentación; el valor negativo viene de la granularidad de la medición de CPU.

ComponenteDuración (s)% del totalgráficoOcurrenciasMedia (s)Mín (s)Máx (s)
no contabilizado 37,419211 73,6
cpu 5,125233 10,1 180.117 0,000028 0,000000 0,008999
cpu 4,550304 9,0 178.460 0,000025 0,000000 0,008999
cpu 2,189671 4,3 180.269 0,000012 0,000000 0,124981
User I/O 1,047610 2,1 1.962 0,000534 0,000005 0,035303
cpu 0,255954 0,5 180.268 0,000001 0,000000 0,001999
User I/O 0,165164 0,3 18.337 0,000009 0,000003 0,018484
no contabilizado 0,055133 0,1 719.114 0,000000
Application 0,014392 0,0 1 0,014392 0,014392 0,014392
User I/O 0,008094 0,0 3 0,002698 0,001960 0,003773
Idle 0,001212 0,0 2 0,000606 0,000489 0,000723
Other 0,000616 0,0 3 0,000205 0,000005 0,000385
User I/O 0,000524 0,0 10 0,000052 0,000023 0,000082
Network 0,000007 0,0 2 0,000003 0,000003 0,000004
Total50,833125100,0

Por clase de espera

Los mismos componentes agrupados por la clase de espera de Oracle (wait_class), con CPU y tiempo no contabilizado aparte. La suma también es el tiempo total.

ClaseDuración (s)% del totalgráficoOcurrenciasComponentes principales
37,474344 73,7 tiempo no contabilizado entre llamadas · tiempo no contabilizado dentro de las llamadas
12,121162 23,8 719.114 CPU: PARSE dbcalls · CPU: FETCH dbcalls · CPU: EXEC dbcalls · CPU: CLOSE dbcalls
1,221392 2,4 20.312 db file sequential read · direct path read · local write wait · Disk file operations I/O
0,014392 0,0 1 enq: RO - fast object reuse
0,001212 0,0 2 SQL*Net message from client
0,000616 0,0 3 reliable message
0,000007 0,0 2 SQL*Net message to client

Sentencias principales por componente y por clase

Cuánto gastó cada sentencia en cada componente del perfil y en cada clase de espera, según el perfil exclusivo de la sentencia (sin el SQL recursivo que dispara). Hasta 10 sentencias por lista: cámbielo en la parte superior de la página.

Por componente del perfil

CPU: PARSE dbcalls cpu5,125 s · 10,1% del tiempo total · 10 sentencias
CPU: FETCH dbcalls cpu4,550 s · 9,0% del tiempo total · 10 de 12 sentencias

2 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

CPU: EXEC dbcalls cpu2,190 s · 4,3% del tiempo total · 10 de 29 sentencias

19 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

db file sequential read espera1,048 s · 2,1% del tiempo total · 10 de 23 sentencias

13 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

CPU: CLOSE dbcalls cpu0,256 s · 0,5% del tiempo total · 3 sentencias
direct path read espera0,165 s · 0,3% del tiempo total · 1 sentencia
#Tiempo (s)% del totalgráficoSQL IDTexto
40,06639540,29sxjs1fk1qc9gBEGIN ROT_0001('***',*** ); END;
tiempo no contabilizado dentro de las llamadas no contabilizado0,055 s · 0,1% del tiempo total · 10 de 41 sentencias

31 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

enq: RO - fast object reuse espera0,014 s · 0,0% del tiempo total · 1 sentencia
#Tiempo (s)% del totalgráficoSQL IDTexto
100,014392100,09y5d9x2wwc9nnTRUNCATE TABLE TAB_0005
local write wait espera0,008 s · 0,0% del tiempo total · 1 sentencia
#Tiempo (s)% del totalgráficoSQL IDTexto
100,008094100,09y5d9x2wwc9nnTRUNCATE TABLE TAB_0005
SQL*Net message from client espera0,001 s · 0,0% del tiempo total · 2 sentencias
#Tiempo (s)% del totalgráficoSQL IDTexto
60,00072359,7#140548883950424
50,00048940,368ngguy15jsj7alter session set events='***'

Por clase de espera

No contabilizado37,474 s · 73,7% del tiempo total · 10 de 41 sentencias

31 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

CPU12,121 s · 23,8% del tiempo total · 10 de 38 sentencias

28 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

User I/O1,221 s · 2,4% del tiempo total · 10 de 24 sentencias

14 sentencias más gastaron tiempo aquí; aumente el número en la parte superior de la página para verlas.

Application0,014 s · 0,0% del tiempo total · 1 sentencia
#Tiempo (s)% del totalgráficoSQL IDTexto
100,014392100,09y5d9x2wwc9nnTRUNCATE TABLE TAB_0005
Idle0,001 s · 0,0% del tiempo total · 2 sentencias
#Tiempo (s)% del totalgráficoSQL IDTexto
60,00072359,7#140548883950424
50,00048940,368ngguy15jsj7alter session set events='***'
Other0,001 s · 0,0% del tiempo total · 1 sentencia
#Tiempo (s)% del totalgráficoSQL IDTexto
100,000616100,09y5d9x2wwc9nnTRUNCATE TABLE TAB_0005
Network0,000 s · 0,0% del tiempo total · 2 sentencias
#Tiempo (s)% del totalgráficoSQL IDTexto
60,00000457,1#140548883950424
50,00000342,968ngguy15jsj7alter session set events='***'

Sentencias SQL por contribución

Contribución: duración de las llamadas de nivel 0 de la sentencia sumada a las esperas entre llamadas en su cursor. Inclusivo: suma de todas las llamadas de la sentencia, en cualquier profundidad.

#Contribución (s)% del totalInclusivo (s)TipoProf.ExecFetchFilasLIOPIOSQL IDTexto
1 1,415 2,8 4,941 SELECT 1 89.112 89.112 89.112 445.560 0 49 variantes SELECT (SELECT COL_0073 FROM TAB_0005 WHERE COL_0074 = :n AND ROWNUM <=:n) AS COL_0073 FROM DUAL
2 1,405 2,8 4,842 SELECT 1 89.112 89.112 89.112 445.560 0 49 variantes SELECT (SELECT COL_0075 FROM TAB_0005 WHERE COL_0074 = :n AND ROWNUM <=:n) AS COL_0075 FROM DUAL
3 0,623 1,2 1,451 INSERT 1 1.217 0 1.217 8.761 32 1.217 variantes INSERT INTO TAB_0001 (COL_0076,COL_0077, … NULL,NULL,:s,NULL,NULL,NULL,NULL,NULL,NULL,NULL,:s,NULL,NULL,NULL,NULL…
4 0,137 0,3 0,070 PL/SQL 0 0 0 0 24 8 9sxjs1fk1qc9g BEGIN ROT_0001('***',*** ); END;
5 0,040 0,1 0,040 ALTER SESSION 0 1 0 0 0 0 68ngguy15jsj7 alter session set events='***'
6 0,027 0,1 0,026 ? 0 1 0 0 0 0 #140548883950424
7 0,000 0,0 1,023 DELETE 1 2 0 0 3.740 1.870 42q0kx6suxhw2 DELETE FROM TAB_0001
8 0,000 0,0 0,417 INSERT 1 350 0 350 2.590 18 350 variantes INSERT INTO TAB_0001 (COL_0076,COL_0077, … :s,:s,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL…
9 0,000 0,0 0,288 INSERT 1 251 0 251 1.800 5 251 variantes INSERT INTO TAB_0001 (COL_0076,COL_0077, … NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,…
10 0,000 0,0 0,082 TRUNCATE TABLE 1 1 0 0 110 17 9y5d9x2wwc9nn TRUNCATE TABLE TAB_0005

Las filas marcadas con variantes suman sentencias que solo difieren en los literales; en el texto, :s y :n ocupan el lugar de los literales.

Mostrando 10 de 65 sentencias; aumente el número en la parte superior de la página para ver más.

Tiempo no atribuido a ninguna sentencia: 47,186 s.

Tipos de llamada

LlamadaCantidadCPU (s)Duración (s)Disco (PIO)Consistente (CR)Actual (CU)FilasMisses
PARSE180.1175,1405,15619126101.920
FETCH178.4604,5504,72628893.2970178.4320
EXEC180.2692,2123,2451.9405.70311.3631.8781
CLOSE180.2680,2560,25000000

Llamadas de nivel 0 más largas

LlamadaDuración (s)CPU (s)Inicio (+s)LíneaLIOPIOFilasSentencia
PARSE 0,070229 0,010998 0,068 101 24 8 0 #4 BEGIN ROT_0001('***',*** ); END;
EXEC 0,039483 0,002000 0,028 36 0 0 0 #5 alter session set events='***'
EXEC 0,025924 0,001000 0,000 27 0 0 0 #6 #140548883950424
PARSE 0,000157 0,000000 0,027 35 0 0 0 #5 alter session set events='***'
CLOSE 0,000014 0,000000 0,068 39 0 0 0 #5 alter session set events='***'
CLOSE 0,000010 0,000000 0,027 30 0 0 0 #6 #140548883950424

Distribución de latencia

Rangos en potencias de 10, por evento de espera y por tipo de llamada. Muestra si el tiempo viene de muchas ocurrencias rápidas o de pocas lentas.

db file sequential read1.962 ocurrencias · 1,048 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs92146,90,0073730,7
10 µs ≤ e < 100 µs79240,40,0134591,3
100 µs ≤ e < 1 ms1387,00,0630206,0
1 ms ≤ e < 10 ms814,10,49272747,0
10 ms ≤ e < 100 ms301,50,47103145,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
direct path read18.337 ocurrencias · 0,165 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs15.93186,90,08889453,8
10 µs ≤ e < 100 µs2.39913,10,03152419,1
100 µs ≤ e < 1 ms30,00,0008710,5
1 ms ≤ e < 10 ms20,00,0121987,4
10 ms ≤ e < 100 ms20,00,03167719,2
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
enq: RO - fast object reuse1 ocurrencias · 0,014 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs00,00,0000000,0
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms00,00,0000000,0
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms1100,00,014392100,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
local write wait3 ocurrencias · 0,008 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs00,00,0000000,0
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms00,00,0000000,0
1 ms ≤ e < 10 ms3100,00,008094100,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
SQL*Net message from client2 ocurrencias · 0,001 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs00,00,0000000,0
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms2100,00,001212100,0
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
reliable message3 ocurrencias · 0,001 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs133,30,0000050,8
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms266,70,00061199,2
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
Disk file operations I/O10 ocurrencias · 0,001 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs00,00,0000000,0
10 µs ≤ e < 100 µs10100,00,000524100,0
100 µs ≤ e < 1 ms00,00,0000000,0
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
SQL*Net message to client2 ocurrencias · 0,000 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs2100,00,000007100,0
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms00,00,0000000,0
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
PARSE (duración e de la llamada)180.117 ocurrencias · 5,156 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs50,00,0000350,0
10 µs ≤ e < 100 µs178.11198,93,00097858,2
100 µs ≤ e < 1 ms1.2750,71,12522621,8
1 ms ≤ e < 10 ms7220,40,91069917,7
10 ms ≤ e < 100 ms40,00,1188772,3
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
FETCH (duración e de la llamada)178.460 ocurrencias · 4,726 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs780,00,0004380,0
10 µs ≤ e < 100 µs178.05999,84,51408695,5
100 µs ≤ e < 1 ms3030,20,0484631,0
1 ms ≤ e < 10 ms140,00,0622551,3
10 ms ≤ e < 100 ms60,00,1003072,1
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
EXEC (duración e de la llamada)180.269 ocurrencias · 3,245 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs118.35065,70,97725330,1
10 µs ≤ e < 100 µs59.90733,20,78554824,2
100 µs ≤ e < 1 ms1.9911,10,2626698,1
1 ms ≤ e < 10 ms160,00,0466731,4
10 ms ≤ e < 100 ms40,00,1558444,8
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s10,01,01711531,3
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0
CLOSE (duración e de la llamada)180.268 ocurrencias · 0,250 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 1 µs00,00,0000000,0
1 µs ≤ e < 10 µs179.92699,80,24024496,0
10 µs ≤ e < 100 µs3380,20,0087393,5
100 µs ≤ e < 1 ms40,00,0012270,5
1 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < 10 s00,00,0000000,0
10 s ≤ e < 100 s00,00,0000000,0
100 s ≤ e < 1.000 s00,00,0000000,0
1.000 s ≤ e < ∞00,00,0000000,0

Lecturas

lecturas (rangos de disco)20.299 ocurrencias · 1,213 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 5 ms20.20899,60,26974822,2
5 ms ≤ e < 10 ms590,30,44031836,3
10 ms ≤ e < 15 ms170,10,20055416,5
15 ms ≤ e < 20 ms100,00,17148414,1
20 ms ≤ e < 25 ms30,00,0676895,6
25 ms ≤ e < 50 ms20,00,0629815,2
50 ms ≤ e < 100 ms00,00,0000000,0
100 ms ≤ e < 1 s00,00,0000000,0
1 s ≤ e < ∞00,00,0000000,0
lecturas (rangos de SSD)20.299 ocurrencias · 1,213 s
Rango de duraciónOcurrencias% ocurr.Duración (s)% duración
0 ≤ e < 15 µs19.49696,00,12606210,4
15 µs ≤ e < 25 µs2951,50,0054640,5
25 µs ≤ e < 50 µs2091,00,0068390,6
50 µs ≤ e < 100 µs430,20,0028850,2
100 µs ≤ e < 500 µs930,50,0317632,6
500 µs ≤ e < 1 ms480,20,0321282,6
1 ms ≤ e < 10 ms830,40,50492541,6
10 ms ≤ e < ∞320,20,50270841,5

Primera lectura y relectura del mismo bloque

La relectura frecuente del mismo bloque indica una caché pequeña o acceso repetido al mismo dato.

EventoBloques distintos1.ª lectura1.ª lectura (s)RelecturasRelecturas (s)
db file sequential read1.9561.9561,04860,000
local write wait000,00030,008

Objetos con más tiempo de espera

Por el obj# de las esperas. El nombre viene de las líneas STAT del propio trace, cuando existen.

obj#NombreEspera (s)OcurrenciasEventos principales
188047IDX_00010,9311.877db file sequential read · Disk file operations I/O
1877500,16518.336direct path read
1008999TAB_00050,02317enq: RO - fast object reuse · local write wait · reliable message
226IDL_CHAR$0,0171db file sequential read
107I_DEPENDENCY20,0161db file sequential read
227IDL_UB2$0,0161db file sequential read
427IDX_00120,0101db file sequential read
228IDL_SB4$0,0091db file sequential read
31CDEF$0,0082db file sequential read
19IND$0,0083db file sequential read
237I_IDL_CHAR10,0071db file sequential read
236I_IDL_UB110,0071db file sequential read
1876940,00649db file sequential read
40I_OBJ50,0051db file sequential read
225IDL_UB1$0,0041db file sequential read
464IDX_00080,0031db file sequential read
3840,0014SQL*Net message from client · SQL*Net message to client
6505980,0002db file sequential read · Disk file operations I/O
187749TAB_00020,0002db file sequential read
239I_IDL_SB410,0001db file sequential read
3I_OBJ#0,0001db file sequential read
54I_CDEF20,0002db file sequential read
18OBJ$0,0002db file sequential read
1877510,0002db file sequential read · direct path read
462IDX_00070,0001db file sequential read
188088IDX_00020,0001db file sequential read
39I_OBJ40,0001db file sequential read
238I_IDL_UB210,0001db file sequential read
9I_FILE#_BLOCK#0,0001db file sequential read
57I_CCOL10,0001db file sequential read

Textos compartibles

Sentencias que solo difieren en literales. Con bind variables, un único cursor serviría para todas y los PARSE con hard parse bajarían.

Tiempo no contabilizado entre llamadas

tiempo no contabilizado entre llamadas

Tiempo entre el fin de una llamada de nivel 0 y el inicio de la siguiente sin ninguna espera registrada. Es la diferencia entre el tiempo total y la suma de las llamadas y de las esperas entre ellas.

Normal cuando
Pequeño: fracciones de milisegundo por llamada.
Preocupa cuando
Suma mucho: el trace se activó o desactivó a mitad de camino, el proceso quedó fuera de la CPU (servidor saturado), la aplicación tardó sin que apareciera la espera de cliente, o falta un archivo de la colección.
Dónde mirar

CPU en las llamadas PARSE

CPU: PARSE dbcalls

Tiempo de CPU de la sesión en el análisis del SQL (parse). Alto: hard parse por SQL sin bind, o parse repetido del mismo cursor (abrir y cerrar en cada ejecución).

Normal cuando
Es parte del trabajo normal de la base de datos.
Preocupa cuando
Domina el tiempo total: empiece por las sentencias que más CPU consumen y por sus lecturas lógicas.
Dónde mirar

CPU en las llamadas FETCH

CPU: FETCH dbcalls

Tiempo de CPU de la sesión en la búsqueda de las filas. Alto: demasiadas lecturas lógicas (LIO), en general un plan que lee muchos más bloques de los que piden las filas devueltas.

Normal cuando
Es parte del trabajo normal de la base de datos.
Preocupa cuando
Domina el tiempo total: empiece por las sentencias que más CPU consumen y por sus lecturas lógicas.
Dónde mirar

CPU en las llamadas EXEC

CPU: EXEC dbcalls

Tiempo de CPU de la sesión en la ejecución: DML, apertura del cursor y cuerpo de bloques PL/SQL. Alto en PL/SQL: lógica pesada o SQL dentro de un bucle.

Normal cuando
Es parte del trabajo normal de la base de datos.
Preocupa cuando
Domina el tiempo total: empiece por las sentencias que más CPU consumen y por sus lecturas lógicas.
Dónde mirar

Lectura de un bloque

db file sequential read

Lee un bloque del disco al buffer cache: acceso por índice, a la tabla por ROWID, a undo o a la cabecera de segmento.

Normal cuando
Acceso por índice a pocos bloques, con promedio de 0,1 a 1 ms en SSD o flash y de 5 a 10 ms en disco.
Preocupa cuando
Muchas lecturas: el plan lee demasiados bloques (índice poco selectivo, NESTED LOOPS con muchas filas). Promedio alto: almacenamiento lento o con contención.
Dónde mirar

CPU en las llamadas CLOSE

CPU: CLOSE dbcalls

Tiempo de CPU de la sesión en el cierre del cursor. Casi siempre pequeño.

Normal cuando
Es parte del trabajo normal de la base de datos.
Preocupa cuando
Domina el tiempo total: empiece por las sentencias que más CPU consumen y por sus lecturas lógicas.
Dónde mirar

Lectura directa a la PGA

direct path read

Lee bloques del disco directamente a la memoria de la sesión, sin pasar por el buffer cache: full scan grande en serie o consulta paralela.

Normal cuando
Lectura completa de una tabla grande en un proceso por lotes.
Preocupa cuando
Aparece en una pantalla de usuario o dentro de un bucle: full scan grande repetido, tabla leída entera para devolver pocas filas.
Dónde mirar

Tiempo no contabilizado dentro de las llamadas

tiempo no contabilizado dentro de las llamadas

La parte de la duración de la llamada (e=) que no es CPU (c=) ni espera registrada dentro de ella.

Normal cuando
Pequeño. El valor negativo viene de la granularidad de la medición de CPU, no de un problema.
Preocupa cuando
Suma mucho: cola de CPU (más procesos listos que núcleos), paginación de memoria (swap) o código sin instrumentación de espera.
Dónde mirar

Limpieza de buffers (TRUNCATE o DROP)

enq: RO - fast object reuse

TRUNCATE o DROP esperando que la base de datos descarte los bloques del objeto que están en el buffer cache.

Normal cuando
Suma poco tiempo.
Preocupa cuando
TRUNCATE dentro de un bucle, o buffer cache demasiado grande para recorrer.
Dónde mirar

User I/O (lectura y escritura de datos)

User I/O

Lecturas y escrituras de datos hechas por la propia sesión.

Normal cuando
Siempre hay algo de I/O, con promedio bajo por lectura.
Preocupa cuando
Demasiados bloques (el plan lee más de lo necesario) o tiempo medio alto por lectura (almacenamiento lento).
Dónde mirar

Esperando a la aplicación

SQL*Net message from client

La sesión terminó la llamada anterior y espera el próximo pedido de la aplicación. Es tiempo de la aplicación, de la red y del usuario, no de la base de datos.

Normal cuando
Aparece entre todas las llamadas. Las esperas largas y aisladas son el usuario pensando o la aplicación ocupada con otra cosa.
Preocupa cuando
Domina el tiempo total con muchas esperas cortas: la aplicación conversa demasiado con la base de datos (una fila por llamada, SQL dentro de un bucle). Con pocas esperas largas, la demora está en la aplicación, y ajustar el SQL no la resuelve.
Dónde mirar

Mensaje entre procesos

reliable message

La sesión envió un mensaje a procesos de fondo o a otras instancias y espera la confirmación.

Normal cuando
Suma poco tiempo.
Preocupa cuando
Suma mucho: TRUNCATE, result cache o cambio de parámetro en RAC.
Dónde mirar

Abriendo o cerrando archivos

Disk file operations I/O

Operaciones sobre el archivo (abrir, cerrar, consultar el tamaño), no lectura de datos.

Normal cuando
Suma poco tiempo.
Preocupa cuando
Suma mucho: muchos archivos abiertos y cerrados, o sistema de archivos lento.
Dónde mirar

Enviando la respuesta

SQL*Net message to client

Tiempo para entregar un paquete de respuesta al sistema operativo. No mide la red hasta el cliente, solo la entrega al SO.

Normal cuando
Microsegundos por ocurrencia, una por llamada.
Preocupa cuando
El promedio sube a milisegundos: búfer de red del servidor lleno o red saturada.
Dónde mirar

No contabilizado

No contabilizado

Tiempo que el trace no explica por CPU ni por espera: dentro de las llamadas y entre ellas.

Normal cuando
Pequeño.
Preocupa cuando
Cola de CPU, paginación, huecos en el trace o un archivo que falta en la colección.
Dónde mirar

CPU

CPU

Tiempo de CPU de las llamadas a la base de datos (el c= de PARSE, EXEC y FETCH).

Normal cuando
Es el trabajo de la base de datos.
Preocupa cuando
Suma mucho: demasiadas lecturas lógicas (plan), parse en exceso o PL/SQL pesado.
Dónde mirar

Application (aplicación)

Application

Esperas causadas por la forma en que la aplicación usa la base de datos: filas y tablas bloqueadas por otra sesión, bloqueos de la aplicación, errores devueltos.

Normal cuando
Suma poco tiempo.
Preocupa cuando
Sesión detenida esperando a otra: transacciones largas, la misma fila actualizada por varias sesiones, clave foránea sin índice.
Dónde mirar

Idle (inactiva)

Idle

La sesión espera 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.

Normal cuando
Aparece entre las llamadas.
Preocupa cuando
Domina el tiempo total y el usuario se queja de la demora: la lentitud está fuera de la base de datos (aplicación, red, demasiadas idas y vueltas).
Dónde mirar

Other (otros)

Other

Eventos internos sin una clase más específica.

Normal cuando
Suma poco tiempo.
Preocupa cuando
Suma mucho: el evento es el que indica la causa.
Dónde mirar

Network (red)

Network

Enviar y recibir datos por SQL*Net, con la aplicación o con otra base de datos por dblink.

Normal cuando
Suma poco tiempo.
Preocupa cuando
Resultados grandes, arraysize bajo o dblink lento.
Dónde mirar

SQL recursivo (sentencias hijas)

SQL recursivo (sentencias hijas)

Tiempo de las llamadas que esta sentencia disparó: SQL dentro de funciones y procedimientos PL/SQL, triggers y consultas al diccionario.

Normal cuando
Sentencia PL/SQL que ejecuta otros SQL.
Preocupa cuando
Suma mucho en un SELECT o DML simple: función PL/SQL llamada por fila, o trigger pesado.
Dónde mirar
  • Qué sentencias hijas y cuánto cuesta cada una: detalle de la sentencia, SQL recursivo

WaitScope 1.7.0 · análisis realizado en el servidor · informe exportado el 29/10/2026 10:19:58