Relatório de exemplo, gerado pelo WaitScope a partir de um trace sintético. Voltar para a página do WaitScope

WaitScope

exemplo-10046.trc

Analisado em 29/10/2026 10:19:55 · 1,8 KiB · 36 linhas · até 10 comandos por lista

Tempo total
0,007 s
7,0 ms
Período
02/01/2024 09:59:59
até 10:00:00
Chamadas ao banco
6
4 de nível 0
Esperas
4
0,005 s entre chamadas
Comandos distintos
2
1 commits · 0 rollbacks

Sessão e ambiente

Banco
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production · 19.3.0.0.0
Instância
ORCL1
Servidor
db-exemplo
Sessão
10.20 · pid 4242
Módulo
app-exemplo
Unidade de tempo
microssegundos
Arquivo no servidor
/u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_ora_4242.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 A sessão passou a maior parte do tempo esperando a aplicação 71,3% do tempo total

O banco ficou ocioso esperando o próximo pedido do cliente. Ajuste de SQL não reduz esse tempo: olhe a aplicação, a rede e a quantidade de idas e voltas (chamadas por unidade de trabalho). Ver no perfil

média Comando #1: a operação 1 do plano concentra 98,0% do tempo 24,6% do tempo total

Operação TABLE ACCESS BY INDEX ROWID T. Visita a tabela linha a linha a partir do índice: índice pouco seletivo ou sem as colunas que o filtro usa. Também pesam: operação 2, INDEX UNIQUE SCAN T_PK (20,0% das leituras lógicas). As operações estão destacadas no plano, no detalhe do comando. Ver no plano do comando #1

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)
Idle 0,005000 71,3 1 0,005000 0,005000 0,005000
User I/O 0,001300 18,5 2 0,000650 0,000300 0,001000
não contabilizado 0,000286 4,1
cpu 0,000195 2,8 2 0,000097 0,000040 0,000155
não contabilizado 0,000161 2,3 6 0,000027
cpu 0,000050 0,7 1 0,000050 0,000050 0,000050
cpu 0,000015 0,2 2 0,000008 0,000005 0,000010
Network 0,000002 0,0 1 0,000002 0,000002 0,000002
cpu 0,000001 0,0 1 0,000001 0,000001 0,000001
Total0,007010100,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
0,005000 71,3 1 SQL*Net message from client
0,001300 18,5 2 db file sequential read
0,000447 6,4 tempo não contabilizado entre chamadas · tempo não contabilizado dentro das chamadas
0,000261 3,7 6 CPU: FETCH dbcalls · CPU: PARSE dbcalls · CPU: EXEC dbcalls · CPU: CLOSE dbcalls
0,000002 0,0 1 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

SQL*Net message from client espera0,005 s · 71,3% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,005000100,07zq3k1c9m2x4pselect * from t where id=***
db file sequential read espera0,001 s · 18,5% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00100076,97zq3k1c9m2x4pselect * from t where id=***
20,00030023,10w5n8r2t6v1ybselect obj# from obj$ where x=***
CPU: FETCH dbcalls cpu0,000 s · 2,8% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00015579,57zq3k1c9m2x4pselect * from t where id=***
20,00004020,50w5n8r2t6v1ybselect obj# from obj$ where x=***
tempo não contabilizado dentro das chamadas não contabilizado0,000 s · 2,3% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00011672,07zq3k1c9m2x4pselect * from t where id=***
20,00004528,00w5n8r2t6v1ybselect obj# from obj$ where x=***
CPU: PARSE dbcalls cpu0,000 s · 0,7% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,000050100,07zq3k1c9m2x4pselect * from t where id=***
CPU: EXEC dbcalls cpu0,000 s · 0,2% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00001066,77zq3k1c9m2x4pselect * from t where id=***
20,00000533,30w5n8r2t6v1ybselect obj# from obj$ where x=***
SQL*Net message to client espera0,000 s · 0,0% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,000002100,07zq3k1c9m2x4pselect * from t where id=***
CPU: CLOSE dbcalls cpu0,000 s · 0,0% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,000001100,07zq3k1c9m2x4pselect * from t where id=***

Por classe de espera

Idle0,005 s · 71,3% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,005000100,07zq3k1c9m2x4pselect * from t where id=***
User I/O0,001 s · 18,5% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00100076,97zq3k1c9m2x4pselect * from t where id=***
20,00030023,10w5n8r2t6v1ybselect obj# from obj$ where x=***
Não contabilizado0,000 s · 6,4% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00011626,07zq3k1c9m2x4pselect * from t where id=***
20,00004510,10w5n8r2t6v1ybselect obj# from obj$ where x=***
CPU0,000 s · 3,7% do tempo total · 2 comandos
#Tempo (s)% do totalgráficoSQL IDTexto
10,00021682,87zq3k1c9m2x4pselect * from t where id=***
20,00004517,20w5n8r2t6v1ybselect obj# from obj$ where x=***
Network0,000 s · 0,0% do tempo total · 1 comando
#Tempo (s)% do totalgráficoSQL IDTexto
10,000002100,07zq3k1c9m2x4pselect * from t where id=***

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 0,007 95,9 0,002 SELECT 0 1 1 1 10 1 7zq3k1c9m2x4p select * from t where id=***
2 0,000 0,0 0,000 SELECT 1 1 1 1 3 1 0w5n8r2t6v1yb select obj# from obj$ where x=***

Tempo não atribuído a nenhum comando: 0,000 s.

Tipos de chamada

ChamadaQuantidadeCPU (s)Duração (s)Disco (PIO)Consistente (CR)Corrente (CU)LinhasMisses
FETCH20,0000,002213020
PARSE10,0000,00000001
EXEC20,0000,00000000
CLOSE10,0000,00000000

Chamadas de nível 0 mais longas

ChamadaDuração (s)CPU (s)Início (+s)LinhaLIOPIOLinhasComando
FETCH 0,001600 0,000200 0,000 31 10 1 1 #1 select * from t where id=***
PARSE 0,000100 0,000050 0,000 17 0 0 0 #1 select * from t where id=***
EXEC 0,000020 0,000010 0,000 18 0 0 0 #1 select * from t where id=***
CLOSE 0,000002 0,000001 0,007 35 0 0 0 #1 select * from t where id=***

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.

SQL*Net message from client1 ocorrências · 0,005 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 ms1100,00,005000100,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
db file sequential read2 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 ms150,00,00030023,1
1 ms ≤ e < 10 ms150,00,00100076,9
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 client1 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 µs1100,00,000002100,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
FETCH (duração e da chamada)2 ocorrências · 0,002 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 ms150,00,00038019,2
1 ms ≤ e < 10 ms150,00,00160080,8
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)1 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 µs00,00,0000000,0
10 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 1 ms1100,00,000100100,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
EXEC (duração e da chamada)2 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 µs00,00,0000000,0
10 µs ≤ e < 100 µs2100,00,000030100,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
CLOSE (duração e da chamada)1 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 µs1100,00,000002100,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

Leituras

leituras (faixas de disco)2 ocorrências · 0,001 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
0 ≤ e < 5 ms2100,00,001300100,0
5 ms ≤ e < 10 ms00,00,0000000,0
10 ms ≤ e < 15 ms00,00,0000000,0
15 ms ≤ e < 20 ms00,00,0000000,0
20 ms ≤ e < 25 ms00,00,0000000,0
25 ms ≤ e < 50 ms00,00,0000000,0
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)2 ocorrências · 0,001 s
Faixa da duraçãoOcorrências% ocorr.Duração (s)% duração
0 ≤ e < 15 µs00,00,0000000,0
15 µs ≤ e < 25 µs00,00,0000000,0
25 µs ≤ e < 50 µs00,00,0000000,0
50 µs ≤ e < 100 µs00,00,0000000,0
100 µs ≤ e < 500 µs150,00,00030023,1
500 µs ≤ e < 1 ms00,00,0000000,0
1 ms ≤ e < 10 ms150,00,00100076,9
10 ms ≤ e < ∞00,00,0000000,0

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 read110,00010,001

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
50T0,0012db file sequential read

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

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

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 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

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

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 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

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

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

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

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

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

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:56