2011-07-31 26 views
6

Vamos a hacer dos ejemplos: un escaneo completo de tabla conduce a este resultado:Eventos de espera de Oracle: ¿qué interpreta el archivo db lectura dispersa/secuencial?

       TOTAL TIME 
EVENT       WAITS WAITED 
------------------------------ ----- ------ 
db file scattered read   460  13 

Este es el resultado de la conexión a través de un rango de exploración de índice no selectiva:

       TOTAL TIME 
EVENT       WAITS WAITED 
------------------------------ ----- ------ 
db file scattered read   15  3 
db file sequential read   6209 140 

me gustaría esperar lecturas dispersas después de tomar muchos rowid del índice no selectivo. Y solo una lectura secuencial para leer toda la tabla en un sistema de E/S desfragmentado.

¿Puede explicarme cómo leer esta información?

Respuesta

5

La denominación de estos dos eventos de espera es bastante confusa. Ambos significan cuellos de botella de E/S: db file scattered read por lo general deriva de lecturas de múltiples bloques, lo que significa escaneos completos de tablas, mientras que db file sequential read generalmente provienen de lecturas de bloque único, lo que significa lecturas indexadas.

Existen varias teorías diferentes sobre el motivo por el cual los ingenieros de Oracle dieron a estos eventos nombres tan aparentemente engañosos. Lo recomiendo con entusiasmo a leer el ensayo de Eric emrick sobre el tema, Why Have Scattered Thoughts About Oracle Reads?


En cuanto a la interpretación de los datos, una lectura indexada es al menos dos lecturas lógicas: una mirada en marcha del índice, seguido de una búsqueda de la fila de la tabla indicada por la tabla. Cosas como las filas migradas pueden aumentar el número de lecturas. Entonces, leer una gran cantidad de filas a través de un índice es una operación costosa. Mientras que, un escaneo de tabla completo solo puede hoover filas utilizando lecturas de varios bloques: eso está tirando en muchas filas para una sola lectura lógica. Esta es la razón por la que una exploración de tabla completa suele ser más eficiente para recuperar incluso porcentajes relativamente pequeños de las filas totales de una tabla.

+1

+1 para el enlace informativo interesante – DCookie

Cuestiones relacionadas