v$lock 视图说明

ADDR  
Address of lock state object 

KADDR  
Address of lock 

Lock Type  
System Type  
BL Buffer hash table instance 
CF Control file schema global enqueue 
CI Cross-instance function invocation instance 
CU Cursor bind 
DF Data file instance 
DL Direct loader parallel index create 
DM Mount/startup db primary/secondary instance 
DR Distributed recovery process 
DX Distributed transaction entry 
FS File set 
HW Space management operations on a specific segment 
IN Instance number 
IR Instance recovery serialization global enqueue 
IS Instance state 
IV Library cache invalidation instance 
JQ Job queue 
KK Thread kick 
LA .. LP Library cache lock instance lock (A..P = namespace) 
MM Mount definition global enqueue 
MR Media recovery 
NA..NZ Library cache pin instance (A..Z = namespace) 
PF Password File 
PI, PS Parallel operation 
PR Process startup 
QA..QZ Row cache instance (A..Z = cache) 
RT Redo thread global enqueue 
SC System change number instance 
SM SMON 
SN Sequence number instance 
SQ Sequence number enqueue 
SS Sort segment 
ST Space transaction enqueue 
SV Sequence number value 
TA Generic enqueue 
TS Temporary segment enqueue (ID2=0) 
TS New block allocation enqueue (ID2=1) 
TT Temporary table enqueue 
UN User name 
US Undo segment DDL 
WL Being-written redo log instance 

User Type  
TX --- Transaction 
TM --- Table Manipulate 
UL --- PL/SQL USER LOCK 

lmode(Lock mode)  
Lock mode in which the session holds the lock: 
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  
Lock mode in which the process requests the lock: 
0 - none 
1 - null (NULL) 
2 - row-S (SS) 
3 - row-X (SX) 
4 - share (S) 
5 - S/Row-X (SSX) 
6 - exclusive (X) 

Block  
0 --- Not blocking any other processes 
1 --- This lock blocks other processes 
2 --- Global
列名 类型 字段说明 ADDR RAW(4|8) Address of lock state object KADDR RAW(4|8) Address of lock SID NUMBER 会话的sid,可以和v$session 关联 TYPE VARCHAR2(2) 锁保护对象的类型见上面 TM – DML enqueue TX – Transaction enqueue UL – User supplied 更多时候只需要关注TX和TM两种类型的锁 UL锁用户自己定义的,一般很少会定义,很少关注 其它均为系统锁,会很快自动释放,不用关注 ID1 NUMBER ID1,ID2的取值含义根据type的取值而有所不同 ID2 对于TM 锁   ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息,ID2 值为0   对于TX 锁   ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号,其组形式:   0xRRRRSSSS,RRRR=RBS/UNDO NUMBER,SSSS=SLOT NUMBER   ID2 以十进制数值表示环绕wrap的次数,即事务槽被重用的次数 LMODE NUMBER 0、无
1、NULL,可以某些情况下,如分布式数据库的查询会产生此锁。
2、SS,表结构共享锁
3、SX,表结构共享锁+被操作的记录的排它锁
4、S, 表结构共享锁+所有记录共享锁
5、SRX 表结构共享锁+所有记录排它锁
6、X   表结构排它锁+所有记录排它锁

以下为补充上面 摘自:http://www.itpub.net/thread-940126-1-1.html
    2   SS, 表结构共享+加上部分数据共享.虽然有人说,ORACLE里,数据没有S状态,但我还是愿意这样理解:
         第1个S代表表结构共享.
         第2个代表表里的数据共享.
         你可以想象一下,当往子表里增加纪录时,主表的相关主键是不是得处于共享模式.
    3    SX,   用于DML操作,第1个S代表表结构共享,第2个代表表里被操作的数据独占.
    4    S, 代表表结构+表里的数据都是处于共享模式.当对表创建索引时,在创建期间,表处于这种模式.
    5    SRX=S(4)+SX(3),
    6    X, 删除表是会用上.
REQUEST NUMBER 同上LMODE 大于0时,表示当前会话被阻塞,其它会话占有改锁的模式 CTIME NUMBER 已持有或者等待锁的时间 BLOCK NUMBER 是否阻塞其他会话锁申请 2:Global  1:阻塞  0:不阻塞



相关视图

视图名 描述 主要字段说明 v$session 查询会话的信息和锁的信息。 sid,serial#:表示会话信息。 program:表示会话的应用程序信息。 row_wait_obj#:表示等待的对象,和dba_objects中的object_id相对应。 lockwait :该会话等待的锁的地址,与v$lock的kaddr对应. v$session_wait 查询等待的会话信息。 sid:表示持有锁的会话信息。 Seconds_in_wait:表示等待持续的时间信息 Event:表示会话等待的事件,锁等于enqueue dba_locks 对v$lock的格式化视图。 Session_id:和v$lock中的Sid对应。 Lock_type:和v$lock中的type对应。 Lock_ID1: 和v$lock中的ID1对应。 Mode_held,mode_requested:和v$lock中的lmode,request相对应。 v$locked_object 只包含DML的锁信息,包括回滚段和会话信息。 Xidusn,xidslot,xidsqn:表示回滚段信息。和v$transaction相关联。 Object_id:表示被锁对象标识。 Session_id:表示持有锁的会话信息。 Locked_mode:表示会话等待的锁模式的信息,和v$lock中的lmode一致。

 

模式锁定的SQL排斥的模式允许的DML
2lock table t in row share mode;6select,insert,update,delete,for update
3lock table t in row exclusive mode;4,5,6select,insert,update, delete,for update
4lock table t in share mode;3,5,6select
5lock table t in share row exclusive mode;3,4,5,6select
6lock table t in exclusive mode;2,3,4,5,6select

转载于:https://www.cnblogs.com/Tomason/p/3495802.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值