A seção de leituras olha só para as esperas de leitura: em faixas de duração pensadas para disco e para SSD, e pela releitura do mesmo bloco, que mostra quanto a sessão voltou ao disco atrás de um dado que já tinha lido.
O que a seção mostra
A seção Leituras aparece quando o trace tem esperas de leitura e traz até três tabelas:
- leituras (faixas de disco) e leituras (faixas de SSD): as mesmas leituras, em faixas diferentes. Entram as esperas de leitura, como
db file sequential read,db file scattered read,direct path readeread by other session. - Primeira leitura e releitura do mesmo bloco: para as esperas que trazem o arquivo e o bloco lidos (
file#eblock#), comodb file sequential readedb file scattered read.
Como ler
As duas tabelas de faixas têm as colunas da distribuição de latência: Faixa da duração, Ocorrências, % ocorr., Duração (s) e % duração. Só as faixas mudam:
| Tabela | Faixas |
|---|---|
| leituras (faixas de disco) | até 5 ms, de 5 em 5 ms até 25 ms, de 25 a 50 ms, de 50 a 100 ms, de 100 ms a 1 s, e 1 s ou mais |
| leituras (faixas de SSD) | até 15 µs, de 15 a 25 µs, de 25 a 50 µs, de 50 a 100 µs, de 100 a 500 µs, de 500 µs a 1 ms, de 1 a 10 ms, e 10 ms ou mais |
Use a tabela do armazenamento que o banco tem: em disco, uma leitura de 3 ms é boa; em SSD ou flash, é lenta.
| Coluna | O que diz |
|---|---|
| Evento | O evento de leitura. |
| Blocos distintos | Quantos blocos diferentes (arquivo e bloco) o evento leu. |
| 1ª leitura e 1ª leitura (s) | Quantas leituras foram de um bloco lido pela primeira vez no trace, e o tempo delas. |
| Releituras e Releituras (s) | Quantas leituras foram de um bloco que o trace já tinha lido antes, e o tempo delas. |
Num trace muito grande, a análise pode atingir o limite de blocos distintos que acompanha. Daí em diante, bloco novo conta como primeira leitura, e um aviso no alto do relatório diz isso: as releituras ficam abaixo do que foram.
No relatório de exemplo, o bloco 100 do arquivo 1 foi lido duas vezes: 1 bloco distinto, 1 primeira leitura e 1 releitura, que levou 0,001 s.
Quando preocupa
- Na tabela do seu armazenamento, boa parte da duração cai nas faixas mais lentas: o armazenamento está lento ou disputado (leitura lenta).
- As leituras são rápidas, mas são muitas: o problema é o volume, e a causa costuma estar no plano, que lê blocos demais (muitas leituras).
- Releituras com boa parte do tempo: o bloco saiu do buffer cache antes de ser usado de novo. A console resume: Releitura frequente do mesmo bloco indica cache pequeno ou acesso repetido ao mesmo dado.
Para onde ir depois
- Leituras do relatório de exemplo e as faixas de disco.
- Objetos com mais tempo de espera, para saber que tabela ou índice foi lido.
- Distribuição de latência, com as faixas de cada evento separado.