ORACLE锁表问题 inactive 跪求
下面是聊天记录,17号早上的。
1234(1) 09:27:22
USERNAME PROGRAM EVENT SQL_ID STATUS LAST_CALL_ET
------------------------------ ------------------------------------------------ ------------------------------ ------------- -------- ------------
ADMIN001 btw@sysdata18a (TNS V1-V3) enq: TX - row lock contention 690386d37tbf3 ACTIVE 47886
ADMIN001 btw@sysdata18a (TNS V1-V3) enq: TX - row lock contention 690386d37tbf3 ACTIVE 22776
ADMIN001 btw@sysdata18a (TNS V1-V3) enq: TX - row lock contention 690386d37tbf3 ACTIVE 19111
ADMIN001 btw@sysdata18a (TNS V1-V3) enq: TX - row lock contention 690386d37tbf3 ACTIVE 15511
ADMIN001 btw@sysdata18a (TNS V1-V3) enq: TX - row lock contention 690386d37tbf3 ACTIVE
.......
1234(1) 09:27:27
SQL_ID 690386d37tbf3, child number 1
-------------------------------------
INSERT INTO TB_DATA(AAA) SELECT AAA FROM TB_BA_ACTATTR WHERE DI = :1
5678(ttt) 09:28:13 //(下面这个不自动换行会显示正常)
SID OSUSER USERNAME PROGRAM MODULE MACHINE CLIENT_INFO LOGON_TIME LAST_CALL_ET STATUS
---------- ------------------------------ ------------------------------ ------------------------------------------------ ------------------------------------------------ ---------------------------- ---------------------------- ------------------- ------------ --------
5421 YYITSME ERP_JK SQL*Net message from client 13052:12680plsqldev.exe PL/SQL Developer WORKGROUP\GDERP19 2013-06-16 18:20:00 53734 INACTIVE
5678(ttt) 09:28:26
PL/SQL堵塞的
4567(凡凡) 09:32:02
先kill掉吧,我请神牛跟进下的
[解决办法]
有点乱,没看太明白。
聊天记录的第一段是说有表被锁了,至于时间应该看不出来。第二段是在查被锁的表,和锁表的进程。单纯这么看的话,可以认为是YYITSME用户引起锁表,PL/SQL Developer。
[解决办法]
[解决办法]
有点乱、没看明白、LZ用下面的脚本看一下、是否确实存在锁表以及是哪条sql导致:
SELECT a.sid
[解决办法]
decode(request,
0,
' :holder',' :Waiter') sess_id,blocking_session blocker,
lmode,
request,
a.type,
c.object_name,
decode(row_wait_obj#,
-1,
'Holder of Lock !!!',
dbms_rowid.rowid_create(1,
row_wait_obj#,
row_wait_file#,
row_wait_block#,
row_wait_row#)) row_id,
nvl(SQL_FULLTEXT, 'Holder of Lock !!!') sqltext
FROM V$LOCK A, V$LOCKED_OBJECT B, ALL_OBJECTS C, V$SESSION D, V$SQL E
WHERE (id1, id2, a.type) in
(select id1, id2, type from v$lock where request > 0)
AND a.sid = b.session_id
AND b.object_id = c.object_id
AND d.sid = a.sid
AND d.sql_hash_value = e.hash_value(+)
