Tema: bloqueo
Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/06/2008, 01:38
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: bloqueo

Prueba esta :

select logon_time,p.spid,SID,S.SERIAL#,s.lockwait,s.modul e,s.program
, s.osuser, n.owner ||'.'||n.object_name, s.status
from v$session s , v$process p , v$locked_object l , all_objects n
where s.sid = l.session_id
and l.object_id = n.object_id
and p.addr=s.paddr

Si el LOCKWAIT está relleno , ese objeto está bloqueado .Ahí tienes el SID y el SERIAL# para hacer el KILL SESSION y si se queda pillao en STATUS = KILLED, el P.SPID es el identificador del proceso del sistema operativo para que puedas hacer un KILL-9 en UNIX o matarlo en windows

Esta otra query te identifica el usuario que está sufriendo el bloqueo y el que lo está provocando, muy util.


SELECT /*+ CHOOSE */
BS.USERNAME "BLOCKING_USER",
BS.USERNAME "DB_USER",
BS.OSUSER "BLOCKING_OSUSER",
WS.USERNAME "WAITING_USER",
WS.OSUSER "WAITING_OSUSER",
BS.SID "SID",
WS.SID "WSID",
BS.SQL_ADDRESS "ADDRESS",
BS.SQL_HASH_VALUE "SQL_HASH",
BS.PROGRAM "BLOCKING_APP",
WS.PROGRAM "WAITING_APP",
BS.MACHINE "BLOCKING_MACHINE",
WS.MACHINE "WAITING_MACHINE",
BS.OSUSER "BLOCKING_OS_USER",
WS.OSUSER "WAITING_OS_USER",
BS.SERIAL# "SERIAL",
DECODE(wk.TYPE,
'MR', 'Media Recovery',
'RT', 'Redo Thread',
'UN', 'USER Name',
'TX', 'Transaction',
'TM', 'DML',
'UL', 'PL/SQL USER LOCK',
'DX', 'Distributed Xaction',
'CF', 'Control FILE',
'IS', 'Instance State',
'FS', 'FILE SET',
'IR', 'Instance Recovery',
'ST', 'Disk SPACE Transaction',
'TS', 'Temp Segment',
'IV', 'Library Cache Invalidation',
'LS', 'LOG START OR Switch',
'RW', 'ROW Wait',
'SQ', 'Sequence Number',
'TE', 'Extend TABLE',
'TT', 'Temp TABLE',
wk.TYPE) lock_type,
DECODE(hk.lmode,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR(hk.lmode)) mode_held,
DECODE(wk.request,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR(wk.request)) mode_requested,
TO_CHAR(hk.id1) lock_id1,
TO_CHAR(hk.id2) lock_id2
FROM
v$lock hk, v$session bs,
v$lock wk, v$session ws
WHERE
hk.block = 1
AND hk.lmode != 0
AND hk.lmode != 1
AND wk.request != 0
AND wk.TYPE (+) = hk.TYPE
AND wk.id1 (+) = hk.id1
AND wk.id2 (+) = hk.id2
AND hk.sid = bs.sid(+)
AND wk.sid = ws.sid(+)
ORDER BY 1