Oracle 动态视图1 V$LOCK

  v$lock显示数据库当前持有锁情况

Column Datatype Description
SID NUMBER 会话ID
TYPE VARCHAR2(2) 表示锁的类型。值包括TMTX,等
ID1 NUMBER

对于TM锁:ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息;

对于TX锁:ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号

ID2 NUMBER 对于TM锁:ID2 值为0;对于TX锁:ID2 以十进制数值表示事务槽被重用的次数
LMODE NUMBER 持有锁模式:
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
REQUEST NUMBER 申请锁模式:
0 - none
1 - null (NULL)
2 - row-S (SS)
3 - row-X (SX)
4 - share (S)
5 - S/Row-X (SSX)
6 - exclusive (X)
CTIME NUMBER 持有锁的时间
BLOCK NUMBER 是否正在阻塞其他会话锁申请 1:阻塞 0:不阻塞

示例展示:

会话1

 1 --查看当前会话1持有锁情况

 2 select sid,type,id1,id2,lmode,request,block 

 3 from v$lock

 4 where sid in (select sid from v$mystat where rownum=1);

 5 

 6 无记录

 7 

 8 --加锁

 9 select * from t1 for update ;

10 

11 --查看加锁后的v$lock

12 SQL> select sid,type,id1,id2,lmode,request,block 

13   2  from v$lock

14   3  where sid in (select sid from v$mystat where rownum=1);

15 

16        SID TY        ID1        ID2      LMODE    REQUEST      BLOCK

17 ---------- -- ---------- ---------- ---------- ---------- ----------

18        133 TM      53252          0          3          0          0

19        133 TX     196630        636          6          0          0

20 

21 --当前会话持有两种类型锁:TM(表级锁),TX(行级锁)。锁模式分别为:3,6。BLOCK为:0

会话2

 1 --开启会话2 

 2 --查看当前会话2持有锁情况

 3 select sid,type,id1,id2,lmode,request,block 

 4 from v$lock

 5 where sid=140;

 6 

 7 无记录

 8 

 9 --加锁

10 select * from t1 for update ;

11 

12 会话夯住了

切回会话1

 1 --切换的会话1 查看两个会话持锁状态

 2 SQL> select sid,type,id1,id2,lmode,request,block

 3   2  from v$lock

 4   3  where sid in (133,140);

 5 

 6        SID TYPE      ID1        ID2      LMODE    REQUEST      BLOCK

 7 ---------- -- ---------- ---------- ---------- ---------- ----------

 8        133 TX     196630        636          6          0          1

 9        133 TM      53252          0          3          0          0

10        140 TX     196630        636          0          6          0

11        140 TM      53252          0          3          0          0       

12 SQL> 

13 

14 --会话133: TYPE(tm) lmode(3) block(0)

15            TYPE(tx) lmode(6) block(1)  --在行级持有排它锁,并正在阻塞其它会话

16            

17 --会话140:TYPE(tm) lmode(3)   block(0)

18            TYPE(tx) request(6) block(0)  --正在申请行级排它锁 

 

相关锁的知识介绍:Oracle Lock 概述

 

你可能感兴趣的:(oracle)