【ORACLE】行ロック待ちセッションやロックされたテーブルの確認


ここでは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・・・排他ロック