V$LOCK视图相关知识

1、V$LOCK视图结构

列名类型字段说明
ADDRRAW(4 | 8)Address of lock state object
KADDRRAW(4|8)Address of lock
SIDNUMBER会话的sid,可以和v$session 关联
TYPEVARCHAR2(2)区分该锁保护对象的类型(表4)
TM – DML enqueue
TX – Transaction enqueue
UL – User supplied
–我们主要关注TX和TM两种类型的锁
–UL锁用户自己定义的,一般很少会定义,基本不用关注
–其它均为系统锁,会很快自动释放,不用关注
ID1
ID2
NUMBERID1,ID2的取值含义根据type的取值而有所不同
对于TM 锁
ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息,ID2 值为0
对于TX 锁
ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号,其组形式:
0xRRRRSSSS,RRRR=RBS/UNDO NUMBER,SSSS=SLOT NUMBER
ID2 以十进制数值表示环绕wrap的次数,即事务槽被重用的次数
LMODENUMBER
  • 0 – none
  • 1 – null (NULL)
  • 2 – row-S (SS)
  • 3 – row-X (SX)
  • 4 – share (S)
  • 5 – S/Row-X (SSX)
  • 6 – exclusive (X)
  • 具体见表3
REQUESTNUMBER同LMODE
–大于0时,表示当前会话被阻塞,其它会话占有改锁的模式
CTIMENUMBER
  • 已持有或者等待锁的时间
BLOCKNUMBER
  • 是否阻塞其他会话锁申请 1:阻塞 0:不阻塞


2、其它相关视图说明

视图名描述主要字段说明
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一致。

表3

锁模式锁描述解释SQL操作
0none  
1NULLSelect
2SS(Row-S)行级共享锁,其他对象只能查询这些数据行Select for update
Lock for update
Lock row share
3SX(Row-X)行级排它锁,在提交前不允许做DML操作Insert/update/Delete
Lock row share
4S(Share)共享锁Create index
Lock share
5SSX(S/Row-X)共享行级排它锁Lock share row exclusive
6X(Exclusive)排它锁Alter table
Drop able
Drop index
Truncate table
Lock exclusive

表4

System TypeDescriptionSystem TypeDescription
BLBuffer hash table instanceNA..NZLibrary cache pin instance (A..Z = namespace)
CFControl file schema global enqueuePFPassword File
CICross-instance function invocation instancePI, PSParallel operation
CUCursor bindPRProcess startup
DFdatafile instanceQA..QZRow cache instance (A..Z = cache)
DLDirect loader parallel index createRTRedo thread global enqueue
DMMount/startup db primary/secondary instanceSCSystem change number instance
DRDistributed recovery processSMSMON
DXDistributed transaction entrySNSequence number instance
FSFile setSQSequence number enqueue
HWSpace management operations on a specific segmentSSSort segment
INInstance numberSTSpace transaction enqueue
IRInstance recovery serialization global enqueueSVSequence number value
ISInstance stateTAGeneric enqueue
IVLibrary cache invalidation instanceTSTemporary segment enqueue (ID2=0)
JQJob queueTSNew block allocation enqueue (ID2=1)
KKThread kickTTTemporary table enqueue
LA .. LPLibrary cache lock instance lock (A..P = namespace)UNUser name
MMMount definition global enqueueUSUndo segment DDL
MRMedia recoveryWLBeing-written redo log instance
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值