Bloqueos Tipos
Existen principalmente dos tipos de bloqueo: Los bloqueos a nivel de tabla son creados cuando se ejecuta una sentencia DML del tipo: update, insert, delete, select ..for update sobre la tabla entera. Los bloqueos a nivel de fila se crean cuando se ejecutan senencias DML contra un conjunto de registros específicos. En este ejemplo tenemos la tabla SMT_TESTCASE bloqueada con una sentencia: SELECT * FROM SMT_TESTCASE FOR UPDATE (y no hemos realizado el commit), asi que cualquier sentencia posterior que intente acceder a la tabla se queda parada (es este caso se paran las dos sentencias DELETE from hasta que la tabla bloqueada ya no este en situacion de bloqueo).
bloqueos de tablas (TM) y
bloqueos a nivel de fila (TX)
SELECT
decode(L.REQUEST,0,’NO’,’YES’) WAIT,
s.LOCKWAIT,
l.TYPE,
s.EVENT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(’ ’,s.PROGRAM) PROGRAM,
O.OWNER OWNER,
s.TERMINAL,
s.MACHINE,
s.sid,
s.process
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in (’TM’,’TX’)
and o.object_name=’F4102’
and l.BLOCK=1;
decode(L.TYPE,
SELECT
decode(L.REQUEST,0,’NO’,’YES’) WAIT,
S.OSUSER OSUSER_LOCKER,
S.PROCESS PROCESS_LOCKER,
S.USERNAME DBUSER_LOCKER,
O.OBJECT_NAME OBJECT_NAME,
O.OBJECT_TYPE OBJECT_TYPE,
concat(’ ’,s.PROGRAM) PROGRAM,
O.OWNER OWNER,
s.PROCESS
FROM v$lock l,dba_objects o,v$session s
WHERE l.ID1 = o.OBJECT_ID
AND s.SID =l.SID
AND l.TYPE in (’TM’,’TX’);
-------- Genere una consulta devolviendo el Cliente PID de la session que estamos ejecutando -----------
SELECT p.spid oracle_dedicated_process, s.process clientpid FROM v$process p, v$session s WHERE p.addr = s.paddr
AND s.audsid = userenv(’sessionid’);
-------------------------------------------------------------------------------------------------------------------
--
1 comentario
Noelia Abril Lujan -