La sección de lecturas mira solo las esperas de lectura: en rangos de duración pensados para disco y para SSD, y por la relectura del mismo bloque, que muestra cuánto volvió la sesión al disco por un dato que ya había leído.
Qué muestra la sección
La sección Lecturas aparece cuando el trace tiene esperas de lectura y trae hasta tres tablas:
- lecturas (rangos de disco) y lecturas (rangos de SSD): las mismas lecturas, en rangos diferentes. Entran las esperas de lectura, como
db file sequential read,db file scattered read,direct path readyread by other session. - Primera lectura y relectura del mismo bloque: para las esperas que traen el archivo y el bloque leídos (
file#yblock#), comodb file sequential readydb file scattered read.
Cómo leerla
Las dos tablas de rangos tienen las columnas de la distribución de latencia: Rango de duración, Ocurrencias, % ocurr., Duración (s) y % duración. Solo cambian los rangos:
| Tabla | Rangos |
|---|---|
| lecturas (rangos de disco) | hasta 5 ms, de 5 en 5 ms hasta 25 ms, de 25 a 50 ms, de 50 a 100 ms, de 100 ms a 1 s, y 1 s o más |
| lecturas (rangos de SSD) | hasta 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, y 10 ms o más |
Use la tabla del almacenamiento que tiene la base de datos: en disco, una lectura de 3 ms es buena; en SSD o flash, es lenta.
| Columna | Qué indica |
|---|---|
| Evento | El evento de lectura. |
| Bloques distintos | Cuántos bloques diferentes (archivo y bloque) leyó el evento. |
| 1.ª lectura y 1.ª lectura (s) | Cuántas lecturas fueron de un bloque leído por primera vez en el trace, y su tiempo. |
| Relecturas y Relecturas (s) | Cuántas lecturas fueron de un bloque que el trace ya había leído antes, y su tiempo. |
En un trace muy grande, el análisis puede alcanzar el límite de bloques distintos que sigue. A partir de ahí, un bloque nuevo cuenta como primera lectura, y un aviso en la parte superior del informe lo indica: las relecturas quedan por debajo de lo que fueron.
En el informe de ejemplo, el bloque 100 del archivo 1 se leyó dos veces: 1 bloque distinto, 1 primera lectura y 1 relectura, que tardó 0,001 s.
Cuándo preocupa
- En la tabla de su almacenamiento, buena parte de la duración cae en los rangos más lentos: el almacenamiento está lento o disputado (lectura lenta).
- Las lecturas son rápidas, pero son muchas: el problema es el volumen, y la causa suele estar en el plan, que lee demasiados bloques (muchas lecturas).
- Relecturas con buena parte del tiempo: el bloque salió del buffer cache antes de usarse de nuevo. La consola lo resume: La relectura frecuente del mismo bloque indica una caché pequeña o acceso repetido al mismo dato.
Adónde ir después
- Lecturas del informe de ejemplo y los rangos de disco.
- Objetos con más tiempo de espera, para saber qué tabla o índice se leyó.
- Distribución de latencia, con los rangos de cada evento por separado.