waits | ExpoDBA

waits

Locks (Esperas y Bloqueadores)

Muestra las sesiones que generan lock y las sesiones que esperan por que el lock se libere.
Con este script se puede identificar a que programa pertenece la sesion, a que usuario, por que evento espera, hace cuanto tiempo, etc.

 

Bloques que generan enq: TX - row lock contention

Muestra los bloques con alta contención de updates.

Se muestran con la espera "enq: TX - row lock contention".

Solo muestra la cantidad de sesiones que están en espera por ese bloque, y no sesiones que actualmente tengan el LOCK.

SELECT object_name,    ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW#, count(9) cant, min(seconds_in_wait) min_time, max(seconds_in_wait) max_time
from v$session b, dba_objects o
where o.object_id=ROW_WAIT_OBJ#

LIBRARY CACHE PIN event (Lock y Enqueues)

Muestra en una misma lista las sesiones que tienen Library Cache Lock y en la siguiente fila, los objetos esperando por la liberación de ese lock (eventos en library cache pin).
Muy útil para identificar las sesiones que generan los enqueues en library cache pin.

  /*Muestra sesiones en library cache pin y sus holders*/
   SELECT s.sid, serial#,
   decode (kglpnmod,
    0, 'none (0)',
    2, 'Share (2)',
    3, 'Exclusive (3)') "HOLDED",
   decode (kglpnreq,
    0, 'none (0)',

Locks (identifiacion de bloqueador y bloqueados)

Este script no solo muestra si hay locks, sino también quien tiene tomado el recurso que genera el lock, quienes esperan por la liberación de ese recurso.
Con estos datos se puede identificar el tipo de espera, la sesion , el comando que ejecuta, cuanto tiempo tiene tomado el Lock, etc.

set linesize 250
col sess format a20
col event format a40
col mata format a40
col osuser format a10
col username format a11


SELECT /*+ RULE */
a.sid,b.serial#,

Cantidad de esperas por tipo en RAC

Muestra cantidad de sesiones en cada espera teniendo en cuenta las sesiones de todos los nodos del RAC

select w.event,count(9)
from gv$session s, gv$session_wait w
where s.sid=w.sid
group by w.event
order by 2;

Waits por tipo

Permite filtrar encolamientos de acuerdo a su tipo.

prompt 1- User 2- Redo 4- Enqueue 8- Cache 16- OS 32- Real Application Clusters 64- SQL 128- Debug  
select name, sum(VALUE) 
from v$session ss, v$sesstat se, v$statname sn
where se.STATISTIC# = sn.STATISTIC#