Caso 1: tempo entre chamadas e SQL linha a linha. Relatório de exemplo, gerado pelo WaitScope a partir de um trecho anonimizado de um trace real. Ver o caso 2 Voltar para a página do WaitScope

WaitScope

caso-1.trc

Analisado em 29/10/2026 10:19:46 · 174,0 MiB · 1.997.223 linhas · até 10 comandos por lista

718792 chamadas recursivas sem chamada de nível 0 correspondente (trace iniciado ou cortado no meio de uma chamada)
Tempo total
50,833 s
50,8 s
Período
16/01/2015 19:36:52
até 19:37:43
Chamadas ao banco
719.114
6 de nível 0
Esperas
20.320
0,166 s entre chamadas
Comandos distintos
1.977
2 commits · 0 rollbacks

Sessão e ambiente

Banco
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
Instância
INST_01
Servidor
MAQ_01 · Linux · x86_64
Sessão
151.464 · pid 79628
Serviço
SYS$USERS
Módulo
MOD_01
Ação
Unidade de tempo
microssegundos
Arquivo no servidor
caso1.trc

Diagnóstico

Padrões que costumam explicar o que o trace mostra, em ordem de severidade. São pistas para a análise, não conclusões.

média tempo não contabilizado entre chamadas domina o tempo de resposta 73,6% do tempo total

73,6% do tempo total (37,419 s) vem de um único componente. É por ele que a análise começa. Ver no perfil

média Lacunas de tempo entre chamadas 73,6% do tempo total

Tempo entre chamadas de nível 0 sem espera registrada. O trace pode ter sido ligado e desligado no meio da sessão, ou o processo ficou parado fora do banco. Ver no perfil

média Comando #1 executado 89.112 vezes 9,7% do tempo total

SQL recursivo executado uma vez por linha, típico de laço em PL/SQL. Processamento em conjunto (um único SQL ou FORALL) costuma reduzir muito o tempo. Ver comando #1

média Comando #2 executado 89.112 vezes 9,5% do tempo total

SQL recursivo executado uma vez por linha, típico de laço em PL/SQL. Processamento em conjunto (um único SQL ou FORALL) costuma reduzir muito o tempo. Ver comando #2

baixa Comando #1: a operação 2 do plano concentra 100,0% das leituras lógicas 9,7% do tempo total

Operação TABLE ACCESS FULL TAB_0005. Lê o objeto inteiro: confira se o filtro é seletivo e se há índice para ele. As operações estão destacadas no plano, no detalhe do comando. Ver no plano do comando #1

baixa Comando #2: a operação 2 do plano concentra 100,0% das leituras lógicas 9,5% do tempo total

Operação TABLE ACCESS FULL TAB_0005. Lê o objeto inteiro: confira se o filtro é seletivo e se há índice para ele. As operações estão destacadas no plano, no detalhe do comando. Ver no plano do comando #2

baixa Comando #1: um PARSE a cada execução (89.112 PARSE, 89.112 EXEC) 3,1% do tempo total

O cursor é aberto e fechado a cada uso. Manter o cursor aberto na aplicação (cache de statements do driver) ou session_cached_cursors evita o PARSE repetido. Ver comando #1

baixa Comando #2: um PARSE a cada execução (89.112 PARSE, 89.112 EXEC) 3,1% do tempo total

O cursor é aberto e fechado a cada uso. Manter o cursor aberto na aplicação (cache de statements do driver) ou session_cached_cursors evita o PARSE repetido. Ver comando #2

baixa Comando #3: 1.217 variantes do mesmo SQL, só com literais diferentes 2,5% do tempo total

A aplicação escreve os valores no texto do SQL em vez de usar bind variables, e cada valor diferente vira um comando novo para o banco. Os 1.217 PARSE das variantes, 1.217 deles hard parse, levaram 1,295 s (2,5% do tempo total); com todas as 3.651 chamadas e o SQL recursivo, as variantes somam 1,451 s. A correção é usar bind variables na aplicação. CURSOR_SHARING=FORCE no banco reduz os hard parses enquanto a aplicação não muda, mas é só paliativo. Ver comando #3

Perfil do tempo de resposta

Cada linha é uma parte do tempo total; somadas, dão 100%. Clique no nome de um componente ou de uma classe para ver o que esse tempo significa, quando ele é normal, quando indica problema e onde conferir no relatório. Tempo não contabilizado é o que o trace não explica por CPU nem por espera: dentro das chamadas, costuma ser fila de CPU ou código sem instrumentação; o valor negativo vem da granularidade da medida de CPU.

ComponenteDuração (s)% do totalgráficoOcorrênciasMédia (s)Mín (s)Máx (s)
não 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
não 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 classe de espera

Os mesmos componentes agrupados pela classe de espera do Oracle (wait_class), com CPU e tempo não contabilizado à parte. A soma também é o tempo total.

ClasseDuração (s)% do totalgráficoOcorrênciasPrincipais componentes
37,474344 73,7 tempo não contabilizado entre chamadas · tempo não contabilizado dentro das chamadas
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

Principais comandos por componente e por classe

Quanto cada comando gastou em cada componente do perfil e em cada classe de espera, pelo perfil exclusivo do comando (sem o SQL recursivo que ele dispara). Até 10 comandos por lista: mude no topo da página.

Por componente do perfil

CPU: PARSE dbcalls cpu5,125 s · 10,1% do tempo total · 10 comandos
CPU: FETCH dbcalls cpu4,550 s · 9,0% do tempo total · 10 de 12 comandos

Mais 2 comandos gastaram nele; aumente o número no topo da página para ver.

CPU: EXEC dbcalls cpu2,190 s · 4,3% do tempo total · 10 de 29 comandos

Mais 19 comandos gastaram nele; aumente o número no topo da página para ver.

db file sequential read espera1,048 s · 2,1% do tempo total · 10 de 23 comandos

Mais 13 comandos gastaram nele; aumente o número no topo da página para ver.

CPU: CLOSE dbcalls cpu0,256 s · 0,5% do tempo total · 3 comandos
direct path read espera0,165 s · 0,3% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
40,06639540,29sxjs1fk1qc9gBEGIN ROT_0001('***',*** ); END;
tempo não contabilizado dentro das chamadas não contabilizado0,055 s · 0,1% do tempo total · 10 de 41 comandos

Mais 31 comandos gastaram nele; aumente o número no topo da página para ver.

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

Por classe de espera

Não contabilizado37,474 s · 73,7% do tempo total · 10 de 41 comandos

Mais 31 comandos gastaram nele; aumente o número no topo da página para ver.

CPU12,121 s · 23,8% do tempo total · 10 de 38 comandos

Mais 28 comandos gastaram nele; aumente o número no topo da página para ver.

User I/O1,221 s · 2,4% do tempo total · 10 de 24 comandos

Mais 14 comandos gastaram nele; aumente o número no topo da página para ver.

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

Comandos SQL por contribuição

Contribuição: duração das chamadas de nível 0 do comando somada às esperas entre chamadas no cursor dele. Inclusivo: soma de todas as chamadas do comando, em qualquer profundidade.

#Contribuição (s)% do totalInclusivo (s)TipoProf.ExecFetchLinhasLIOPIOSQL 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

As linhas marcadas com variantes somam comandos que só diferem nos literais; no texto, :s e :n ocupam o lugar dos literais.

Mostrando 10 de 65 comandos; aumente o número no topo da página para ver mais.

Tempo não atribuído a nenhum comando: 47,186 s.

Tipos de chamada

ChamadaQuantidadeCPU (s)Duração (s)Disco (PIO)Consistente (CR)Corrente (CU)LinhasMisses
PARSE180.1175,1405,15619126101.920
FETCH178.4604,5504,72628893.2970178.4320
EXEC180.2692,2123,2451.9405.70311.3631.8781
CLOSE180.2680,2560,25000000

Chamadas de nível 0 mais longas

ChamadaDuração (s)CPU (s)Início (+s)LinhaLIOPIOLinhasComando
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

Distribuição de latência

Faixas em potências de 10, por evento de espera e por tipo de chamada. Mostra se o tempo vem de muitas ocorrências rápidas ou de poucas lentas.

db file sequential read1.962 ocorrências · 1,048 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,165 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,014 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,008 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,001 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,001 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,001 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 ocorrências · 0,000 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 (duração e da chamada)180.117 ocorrências · 5,156 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 (duração e da chamada)178.460 ocorrências · 4,726 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 (duração e da chamada)180.269 ocorrências · 3,245 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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 (duração e da chamada)180.268 ocorrências · 0,250 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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

Leituras

leituras (faixas de disco)20.299 ocorrências · 1,213 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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
leituras (faixas de SSD)20.299 ocorrências · 1,213 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
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

Primeira leitura e releitura do mesmo bloco

Releitura frequente do mesmo bloco indica cache pequeno ou acesso repetido ao mesmo dado.

EventoBlocos distintos1ª leitura1ª leitura (s)ReleiturasReleituras (s)
db file sequential read1.9561.9561,04860,000
local write wait000,00030,008

Objetos com mais tempo de espera

Pelo obj# das esperas. O nome vem das linhas STAT do próprio trace, quando existem.

obj#NomeEspera (s)OcorrênciasEventos principais
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 compartilháveis

Comandos que só diferem em literais. Com bind variables, um único cursor serviria a todos e os PARSE com hard parse cairiam.

Tempo não contabilizado entre chamadas

tempo não contabilizado entre chamadas

Tempo entre o fim de uma chamada de nível 0 e o início da próxima sem nenhuma espera registrada. É a diferença entre o tempo total e a soma das chamadas e das esperas entre elas.

Normal quando
Pequeno: frações de milissegundo por chamada.
Preocupa quando
Soma muito: o trace foi ligado ou desligado no meio, o processo ficou fora da CPU (servidor saturado), a aplicação demorou sem a espera de cliente aparecer, ou falta arquivo da coleta.
Onde olhar

CPU nas chamadas PARSE

CPU: PARSE dbcalls

Tempo de CPU da sessão na análise do SQL (parse). Alto: hard parse por SQL sem bind, ou parse repetido do mesmo cursor (abrir e fechar a cada execução).

Normal quando
É parte do trabalho normal do banco.
Preocupa quando
Domina o tempo total: comece pelos comandos que mais gastam CPU e pelas leituras lógicas deles.
Onde olhar

CPU nas chamadas FETCH

CPU: FETCH dbcalls

Tempo de CPU da sessão na busca das linhas. Alto: leituras lógicas demais (LIO), em geral um plano que lê muito mais blocos do que as linhas devolvidas pedem.

Normal quando
É parte do trabalho normal do banco.
Preocupa quando
Domina o tempo total: comece pelos comandos que mais gastam CPU e pelas leituras lógicas deles.
Onde olhar

CPU nas chamadas EXEC

CPU: EXEC dbcalls

Tempo de CPU da sessão na execução: DML, abertura do cursor e corpo de blocos PL/SQL. Alto em PL/SQL: lógica pesada ou SQL dentro de laço.

Normal quando
É parte do trabalho normal do banco.
Preocupa quando
Domina o tempo total: comece pelos comandos que mais gastam CPU e pelas leituras lógicas deles.
Onde olhar

Leitura de um bloco

db file sequential read

Lê um bloco do disco para o buffer cache: acesso por índice, à tabela via ROWID, a undo ou a cabeçalho de segmento.

Normal quando
Acesso por índice a poucos blocos, com média de 0,1 a 1 ms em SSD ou flash e de 5 a 10 ms em disco.
Preocupa quando
Muitas leituras: o plano lê blocos demais (índice pouco seletivo, NESTED LOOPS com muitas linhas). Média alta: armazenamento lento ou disputado.
Onde olhar

CPU nas chamadas CLOSE

CPU: CLOSE dbcalls

Tempo de CPU da sessão no fechamento do cursor. Quase sempre pequeno.

Normal quando
É parte do trabalho normal do banco.
Preocupa quando
Domina o tempo total: comece pelos comandos que mais gastam CPU e pelas leituras lógicas deles.
Onde olhar

Leitura direta para a PGA

direct path read

Lê blocos do disco direto para a memória da sessão, sem passar pelo buffer cache: full scan grande em série ou consulta paralela.

Normal quando
Leitura completa de tabela grande num processo de lote.
Preocupa quando
Aparece em tela de usuário ou dentro de laço: full scan grande repetido, tabela lida inteira para devolver poucas linhas.
Onde olhar

Tempo não contabilizado dentro das chamadas

tempo não contabilizado dentro das chamadas

Parte da duração da chamada (e=) que não é CPU (c=) nem espera registrada dentro dela.

Normal quando
Pequeno. Valor negativo vem da granularidade da medida de CPU, não de problema.
Preocupa quando
Soma muito: fila de CPU (mais processos prontos que núcleos), paginação de memória (swap) ou código sem instrumentação de espera.
Onde olhar

Limpeza de buffers (TRUNCATE ou DROP)

enq: RO - fast object reuse

TRUNCATE ou DROP esperando o banco descartar os blocos do objeto que estão no buffer cache.

Normal quando
Soma pouco tempo.
Preocupa quando
TRUNCATE dentro de laço, ou buffer cache muito grande para varrer.
Onde olhar

User I/O (leitura e escrita de dados)

User I/O

Leituras e gravações de dados feitas pela própria sessão.

Normal quando
Algum I/O sempre há, com média baixa por leitura.
Preocupa quando
Blocos demais (o plano lê mais do que precisa) ou tempo médio alto por leitura (armazenamento lento).
Onde olhar

Esperando a aplicação

SQL*Net message from client

A sessão terminou a chamada anterior e espera o próximo pedido da aplicação. É tempo da aplicação, da rede e do usuário, não do banco.

Normal quando
Aparece entre todas as chamadas. Esperas longas e isoladas são o usuário pensando ou a aplicação ocupada com outra coisa.
Preocupa quando
Domina o tempo total com muitas esperas curtas: a aplicação conversa demais com o banco (uma linha por chamada, SQL dentro de laço). Com poucas esperas longas, a demora está na aplicação, e ajuste de SQL não resolve.
Onde olhar

Mensagem entre processos

reliable message

A sessão mandou uma mensagem a processos de fundo ou a outras instâncias e espera a confirmação.

Normal quando
Soma pouco tempo.
Preocupa quando
Soma muito: TRUNCATE, result cache ou mudança de parâmetro em RAC.
Onde olhar

Abrindo ou fechando arquivos

Disk file operations I/O

Operações no arquivo (abrir, fechar, consultar tamanho), não leitura de dados.

Normal quando
Soma pouco tempo.
Preocupa quando
Soma muito: muitos arquivos abertos e fechados, ou sistema de arquivos lento.
Onde olhar

Mandando a resposta

SQL*Net message to client

Tempo para entregar um pacote de resposta ao sistema operacional. Não mede a rede até o cliente, só a entrega ao SO.

Normal quando
Microssegundos por ocorrência, uma por chamada.
Preocupa quando
A média sobe para milissegundos: buffer de rede do servidor cheio ou rede saturada.
Onde olhar

Não contabilizado

Não contabilizado

Tempo que o trace não explica por CPU nem por espera: dentro das chamadas e entre elas.

Normal quando
Pequeno.
Preocupa quando
Fila de CPU, paginação, lacunas no trace ou arquivo faltando na coleta.
Onde olhar

CPU

CPU

Tempo de CPU das chamadas ao banco (o c= de PARSE, EXEC e FETCH).

Normal quando
É o trabalho do banco.
Preocupa quando
Soma muito: leituras lógicas demais (plano), parse em excesso ou PL/SQL pesado.
Onde olhar

Application (aplicação)

Application

Esperas causadas pela forma como a aplicação usa o banco: linhas e tabelas bloqueadas por outra sessão, locks da aplicação, erros devolvidos.

Normal quando
Soma pouco tempo.
Preocupa quando
Sessão parada esperando outra: transações longas, mesma linha atualizada por várias sessões, chave estrangeira sem índice.
Onde olhar

Idle (ociosa)

Idle

A sessão espera trabalho. Num trace de sessão, quase sempre é SQL*Net message from client: tempo da aplicação, da rede e do usuário.

Normal quando
Aparece entre as chamadas.
Preocupa quando
Domina o tempo total e o usuário reclama da demora: a lentidão está fora do banco (aplicação, rede, idas e voltas demais).
Onde olhar

Other (outros)

Other

Eventos internos sem classe mais específica.

Normal quando
Soma pouco tempo.
Preocupa quando
Soma muito: o evento é que diz a causa.
Onde olhar

Network (rede)

Network

Mandar e receber dados pelo SQL*Net, com a aplicação ou com outro banco por dblink.

Normal quando
Soma pouco tempo.
Preocupa quando
Resultados grandes, arraysize baixo ou dblink lento.
Onde olhar

SQL recursivo (comandos filhos)

SQL recursivo (comandos filhos)

Tempo das chamadas que este comando disparou: SQL dentro de funções e procedures PL/SQL, triggers e consultas ao dicionário.

Normal quando
Comando PL/SQL que executa outros SQL.
Preocupa quando
Soma muito num SELECT ou DML simples: função PL/SQL chamada por linha, ou trigger pesado.
Onde olhar
  • Quais comandos filhos e quanto custa cada um: detalhe do comando, SQL recursivo

WaitScope 1.7.0 · análise feita no servidor · relatório exportado em 29/10/2026 10:19:55