sql >> Base de Datos >  >> RDS >> Oracle

Cómo entender las estadísticas del archivo de seguimiento en Oracle. Como CPU, tiempo transcurrido, consulta... etc.

La unidad más pequeña de acceso a datos en Oracle Database es un bloque. No una fila.

Cada bloque puede almacenar muchas filas.

La base de datos puede acceder a un bloque en modo actual o consistente.

  • Actual =ya que el bloque existe "ahora mismo".
  • Coherente =ya que existía el bloqueo en el momento en que comenzó su consulta.

Las columnas consulta y actual informan cuántas veces la base de datos accedió a un bloque en modo coherente (consulta) y actual.

Al acceder a un bloque, es posible que ya esté en el caché del búfer (memoria). Si es así, no se necesita acceso al disco. Si no, tiene que hacer una lectura física (pr). La columna del disco es un recuento del total de lecturas físicas.

Las estadísticas de cada línea del plan son las cifras de esa operación. Más la suma de todas sus operaciones secundarias.

En términos simples, la base de datos procesa el plan accediendo primero al primer hijo. Luego pasa las filas al padre. Luego, todas las demás operaciones secundarias de ese padre en orden. Las operaciones secundarias están sangradas de su principal en la pantalla.

Entonces la base de datos procesó su consulta así:

  1. Lea 2000 filas de CLIENTE. Esto requirió 749 bloques consistentes y 363 lecturas de disco (valores cr y pr en esta fila). Esto tomó 10,100 microsegundos.
  2. Lea 112 458 filas de BOOKING. Esto hizo 8203 lecturas consistentes y cero lecturas de disco. Esto tomó 337,595 microsegundos
  3. Unió estas dos tablas mediante una combinación hash. Los valores CR, PR, PW (escrituras físicas) y de tiempo son la suma de las operaciones debajo de esto. Además del trabajo que hizo esta operación. Así que la unión hash:
    • hizo 8,952 - ( 749 + 8,203 ) =cero lecturas consistentes
    • hizo 363 - ( 363 + 0 ) =cero lecturas físicas
    • tomó 1,363,447 - ( 10,100 + 337,595 ) =1,015,752 microsegundos para ejecutarse

¿Observa que los totales de CR y PR para la unión hash coinciden con los totales de consulta y disco en la línea de búsqueda?

La columna de conteo informa el número de veces que ocurrió esa operación. Una búsqueda es una llamada a la base de datos para obtener filas. Así que el cliente llamó a la base de datos 7.499 veces. Cada vez que recibió ceil( 112,458 / 7,499 ) =15 filas.

CPU es el tiempo total en segundos que los procesadores del servidor estuvieron ejecutando ese paso. Transcurrido es el tiempo total del reloj de pared. Este es el tiempo de CPU + cualquier trabajo extra. Como lecturas de disco, tiempo de red, etc.