Evento de espera enq: HW

Hoy vamos a ver un tipo de evento relaccionado habitualmente con las inserciones.

El HW High Water enqueue enq: HW se da cuando varios procesos compiten para aumentar el high water mark de una tabla .

Si disponemos del Enterprise manager console, podremos ver como aparece claramente un area marron de configuracion.

Esta carga se asocia claramente a una consulta de insert

Este caso puede ser comun en procesos de aplicacion con actualizaciones en paralelo sobre la misma tabla.

La manera de la resolución del mismo puede pasar por ampliar los freelists.

Mas informacion como siempre en soporte oracle

  • WAITEVENT: «enq: HW – contention» Reference Note (Doc ID 2098543.1)
  • Analyzing ‘enq: HW – contention’ Wait Event (Doc ID 740075.1)

Eventos de espera en disco I

Hoy vamos a hablar un poquito mas de ajuste de bases de datos.

Aplicando la lógica mas pura, si queremos que todo vaya fluido, lo primero que tendremos que prestar atencion a que es lo que nos está haciendo esperar. Así pues, una de las primeras cosas que tenemos que mirar para ajustar una base de datoslos eventos de espra que mas se producen.

Si generalizamos hasta lo evidente, podemos decir que Oracle puede tener problemas de cpu,memoria o disco (esperemos que sea un «o» en ved de un un «y» ) . En esta entrada vamos a dar una pequeña explicación de cuales son los eventos de espera en disco mas comunes.

  • log file sync
  • log file parallel write
  • db file scattered read
  • db file sequential read

log file sync

Cuando una sesion de usuario hace un commit, la información del redo de esta sesion debe de ser llevada al redo log file, este evento nos indica que estamos esperando a que el LGWR nos indique que esta información está guardada correctament en el redo log.
La aparicion de este evento en el «top ten» puede indicarnos un alto número de commits de aplicación.

log file parallel write

Este evento es muy similar al anterior, solamente que es parte normal del funcionamiento de oracle que lleva la informacion la informacion del redo a el redo log (el anterior lo causaba un commit)

db file sequential read

Este evento nos indica que la instancia está esperando una peticion de entrada/salida,esta lectura se está haciendo de bloques contiguos de disco (de ahí lo de sequential).
Por lo general suelen ser lecturas de bloques sueltos, y suele estar asociada a lecturas de filas indexadas

db file scattered read

Es similar a la anterior excepto que en este caso está a la espera de multiples bloques.
Habitualmente está asociada a Full scan tables. Este evento puede tener relaccion con el parámtro DB_FILE_MULTIBLOCK_READ_COUNT en el que indicamos a oracle el numero de bloques consecutivos a leer en una operacion de I/O para un full scan.

Una vez visto lo que quiere decirnos cada uno de estos 4 eventos,es facil entender el porque de que algunos de ellos esten en la parte alta de los eventos de espera de los informes de AWR .