ORACLE V$lock视图TYPE,ID1,ID2取值的含义

 在oracle v$lock视图中,下面对type,ID1,ID2三个列的具体含义说明下:

  TYPE   有TM,TX两种类型,TX为行级锁,事物锁,TM锁为表级锁

  

TYPE

ID1

ID2

TM

被修改表的标识(object_id

0

TX

以十进制数值表示该事务所占用的回滚段号与该事务在该回滚段的事务表(Transaction table)中所占用的槽号(slot number,可理解为记录号)。其组成形式为: 0xRRRRSSSS ( RRRR = RBS number, SSSS = slot )

以十进制数值表示环绕(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

http://blog.itpub.net/7199859/viewspace-544923/