0 voti
11.9k visite
quesito posto in DBA da (1.9k punti)

Per individuare le sessioni che hanno un lock su di una determinata tabella utilizzo questa query:

SELECT b.Object_Name "Object Name",
ORACLE_USERNAME,
b.Object_Type "Type",
a.session_id "Session",
c.serial# "Serial",
DECODE(a.locked_mode,
0,'None',
1,'Null',
2,'Row-S',
3,'Row-X',
4,'Share',
5,'S/Row-X', 
6,'Exclusive',a.Locked_Mode) "Locked Mode"
FROM v$locked_object a,
sys.all_objects b,
v$session c
WHERE a.object_id = b.object_id
  AND c.sid=a.session_id
  AND b.object_name= 'NOME TABELLA'
ORDER BY 1 DESC;
 
Chiaramente al posto di NOME TABELLA va inserita la tabella (senza lo schema) corretta che è in lock. 
 
La query può essere utile quando non riusciamo ad aggiornare o eliminare le righe di una tabella e non siamo in grado di capire che ci sta bloccando.
 
Una volta individuata si può valutare se è il caso di effettuare un kill della sessione o attendere la sua fine.

Fai il log in oppure registrati per rispondere al quesito.

Domande correlate

0 voti
0 risposte 2.7k visite
quesito posto 8 Dicembre 2013 in DBA da carlo10 (1.9k punti)
0 voti
1 risposta 2.8k visite
0 voti
0 risposte 1.7k visite
0 voti
0 risposte 1.4k visite
0 voti
0 risposte 4.7k visite
...