ここではORACLEデータベースで行ロック待ちセッションやロックされたテーブルの確認するSQLを紹介します。
セッションの確認や強制終了する方法は↓で紹介していますので参考にしてください。
>>起動中のプロセスやセッションの確認と強制終了(キル)する方法
行ロック待ちセッションの確認
SELECT * FORM v$session;
・行ロックの確認
select * from v$lock;
・type
TX・・・トランザクションロック
TM・・・テーブルロック
UL・・・DBMS_LOCKを使用したロック
・lmode
0・・・なし
1・・・NULLロック
2・・・行共有ロック
3・・・行排他ロック
4・・・共有ロック
5・・・共有/行排他ロック
6・・・排他ロック
ロックされたテーブルの確認
ロックされているテーブルはv$locked_objectで確認することが出来ます。
v$locked_objectでロックされているオブジェクトを確認することが出来ます。
select
a.object_id
,b.objcet_name
,a.lock_mode
from
v$locked_object a
inner join DBA_OBJECTS b on a.object_id = b.object_id
;
・lock_modeの値の意味は次の通りです。
0・・・なし
1・・・NULLロック
2・・・行共有ロック
3・・・行排他ロック
4・・・共有ロック
5・・・共有/行排他ロック
6・・・排他ロック