ORACLE V$lock视图TYPE,ID1,ID2取值的含义
ORACLE V$lock视图TYPE,ID1,ID2取值的含义
在oracle v$lock视图中,下面对type,ID1,ID2三个列的具体含义说明下:
TYPE 有TM,TX两种类型,TX为行级锁,事物锁,TM锁为表级锁
[td=55][align=RIGHT]TYPE[td=324]ID1[td=189]ID2
[td=55][align=RIGHT]TM[td=324]被修改表的标识(object_id)[td=189]0
[td=55][align=RIGHT]TX[td=324]以十进制数值表示该事务所占用的回滚段号与该事务在该回滚段的事务表(Transaction table)中所占用的槽号(slot number,可理解为记录号)。其组成形式为: 0xRRRRSSSS ( RRRR = RBS number, SSSS = slot )。[td=189]以十进制数值表示环绕(wrap)次数,即该槽(slot)被重用的次数;
当type为TM时,6718为对象ID号
SQL> select type,id1,id2 from v$lock where sid in (16,17);
TYPE ID1 ID2
---- ---------- ----------
TX 65572 56
TM 6718 0
TM 6718 0
TX 65572 56
SQL> select object_id from DBA_OBJECTS WHERE WNER='SYS' and object_name='TEST';
OBJECT_ID
----------
6718
SQL>
当type为TX时,65572通过以下换算方式得到回滚段号和回滚段所占用的事物槽号
SQL> select xidusn,xidslot from v$transaction;
XIDUSN XIDSLOT
---------- ----------
1 36
SQL> select trunc(65572/65536),mod(65572,65536) from dual;
TRUNC(65572/65536) MOD(65572,65536)
------------------ ----------------
1 36