首页 > Linux操作系统 > Linux操作系统 > 确定enqueue锁类型
SQL>select sid,p1,p1raw,p2,p2raw,p3,p3raw,event from v$session_wait where event='enqueue';
|
SID |
P1 |
P1RAW |
P2 |
P2RAW |
P3 |
P3RAW |
EVENT |
|
31 |
1415053318 |
0000000054580006 |
19922977 |
0000000001300021 |
786911 |
00000000000C01DF |
enqueue |
|
198 |
1415053318 |
0000000054580006 |
19595310 |
00000000012B002E |
760405 |
00000000000B9A55 |
enqueue |
|
249 |
1415053318 |
0000000054580006 |
21626889 |
00000000014A0009 |
323583 |
000000000004EFFF |
enqueue |
|
304 |
1415053318 |
0000000054580006 |
24707106 |
0000000001790022 |
80259 |
0000000000013983 |
enqueue |
|
619 |
1415053318 |
0000000054580006 |
19595310 |
00000000012B002E |
760405 |
00000000000B9A55 |
enqueue |
提示:
如果P1=1415053318,那么锁的mode就是4;如果P1=1415053318,那么锁的mode就是6,至于为何如此判断呢?如:
SQL> select mod(1415053318,16) from dual;
MOD(1415053318,16)
------------------
6
SQL> select mod(1415053316,16) from dual;
MOD(1415053316,16)
------------------
4
具体的Mode有:
# Type Name
--- ------ --------
1 NULL NULL
2 SS Sub
share
3 SX Sub
exclusive
4 S Share
5 SSX Share/sub
exclusive
6 X Exclusive
在Oracle9i中,通过P1RAW就可以直接判断出enqueue锁的type和mode:
若从v$session_wait中查询得到的P1RAW为0000000054580006,在这个值中,前四位表示lock type,后四位表示lock mode。
HEX ASCII
54 T
58 X
00006就是6,即mode6,所以判断该enqueue lock为TX 6
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25834554/viewspace-709182/ ,如需转载,请注明出处,否则将追究法律责任。