如何找出引起enq:TX - row lock contention的记录(二)

2014-11-24 13:06:46 · 作者: · 浏览: 5
_WAIT_ROW#) rid
3 from v$session a , v$enqueue_lock b, dba_objects c
4 where a.sid=b.SID and b.type='TX' and a.ROW_WAIT_OBJ#=object_id(+)
5 /
OBJECT_NAM ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_
ROW# RID
---------- ------------- -------------- --------------- ------------- ------------------------------------
TEST 11007492 5 682220 0 AAp/YEAAFAACmjsAAA
SQL> SELECT rowid from scott.test where rowid='AAp/YEAAFAACmjsAAA';
SELECT rowid from scott.test where rowid='AAp/YEAAFAACmjsAAA'
*
ERROR at line 1:
ORA-01410: invalid ROWID
ROWID_CREATE中的C.ROW_WAIT_OBJ#需要改为DATA_OBJECT_ID才行。
www.2cto.com
SQL> select c.OBJECT_NAME,a.ROW_WAIT_OBJ#,a.ROW_WAIT_FILE#,a.ROW_WAIT_BLOCK#,a.
ROW_WAIT_ROW#,
2 dbms_rowid.rowid_create(1,c.DATA_OBJECT_ID,a.ROW_WAIT_FILE#,a.ROW_WAIT_
BLOCK#,a.ROW_WAIT_ROW#) rid
3 from v$session a , v$enqueue_lock b, dba_objects c
4 where a.sid=b.SID and b.type='TX' and a.ROW_WAIT_OBJ#=object_id(+);
OBJECT_NAM ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_
ROW# RID
---------- ------------- -------------- --------------- ------------- ------------------------------------
TEST 11007492 5 682220 0 AAp/ZbAAFAACmjsAAA
SQL> SELECT rowid from scott.test where rowid='AAp/ZbAAFAACmjsAAA';
ROWID
------------------
AAp/ZbAAFAACmjsAAA