v$locked_object

XIDUSN undo segment number , 可以和v$transaction关联

XIDSLOT undo slot number

XIDSQN 序列号

OBJECT_ID 被锁定对象的object_id , 可以和dba_objects关联

SESSION_ID 持有该锁的session_id, 可以和v$session关联

ORACLE_USERNAME 持有该锁的oracle帐号

OS_USER_NAME 持有该锁的操作系统帐号

PROCESS 操作系统的进程号,可以和v$process关联

LOCKED_MODE 锁模式,含义同v$lock.lmode

Dba_locks 和v$lock 内容差不多,略

V$session 如果某个session被因为某些行被其他会话锁定而阻塞,则该视图中的下面四个字段列出了这些行所属对象的相关信息

ROW_WAIT_FILE# 等待的行所在的文件号

ROW_WAIT_OBJ# 等待的行所属的object_id

ROW_WAIT_BLOCK# 等待的行所属的block

ROW_WAIT_ROW# 等待的行在blcok中的位置

v$lock

SID 会话的sid,可以和v$session 关联

TYPE 区分该锁保护对象的类型,如tm,tx,rt,mr等

ID1 锁表示1

ID2 锁表示2

LMODE 锁模式,见下面说明

REQUEST 申请的锁模式,同lmode

CTIME 已持有或者等待锁的时间

BLOCK 是否阻塞其他会话锁申请 1:阻塞 0:不阻塞

LMODE取值0,1,2,3,4,5,6, 数字越大锁级别越高, 影响的操作越多。

1级锁:

Select,有时会在v$locked_object出现。

2级锁即RS锁

相应的sql有:Select for update ,Lock xxx in Row Share mode,select for update当对

话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独

占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select for update

操作。

3级锁即RX锁

相应的sql有:Insert, Update, Delete, Lock xxx in Row Exclusive mode,没有commit

之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们

必须释放掉上一个才能继续工作。

4级锁即S锁

相应的sql有:Create Index, Lock xxx in Share mode

5级锁即SRX锁

相应的sql有:Lock xxx in Share Row Exclusive mode,当有主外键约束时update

/delete … ; 可能会产生4,5的锁。

6级锁即X锁

相应的sql有:Alter table, Drop table, Drop Index, Truncate table, Lock xxx in Exclusive

mode

ID1,ID2的取值含义根据type的取值而有所不同

对于TM 锁

ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息,ID2 值为0

对于TX 锁

ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号,其组形式:

0xRRRRSSSS,RRRR=RBS/UNDO NUMBER,SSSS=SLOT NUMBER

ID2 以十进制数值表示环绕wrap的次数,即事务槽被重用的次数

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐