|
|

楼主 |
发表于 2012/6/29 09:05:19
|
显示全部楼层
此提示为有某张付款单据正在使用此单据序列号,本以为等个5分钟就可以.但是等了10几分钟仍不行.
最后诊断为table 死锁
通过此SQL 查出死锁对应的 sid and serial#
select ls.osuser os_user_name,
ls.username user_name,
decode(ls.type,
'RW',
'Row wait enqueue lock',
'TM',
'DML enqueue lock',
'TX',
'Transaction enqueue lock',
'UL',
'User supplied lock') lock_type,
o.object_name object,
decode(ls.lmode,
1,
null,
2,
'Row Share',
3,
'Row Exclusive',
4,
'Share',
5,
'Share Row Exclusive',
6,
'Exclusive',
null) lock_mode,
o.owner,
ls.sid,
ls.serial# serial_num,
ls.id1,
ls.id2
from sys.dba_objects o,
(select s.osuser,
s.username,
l.type,
l.lmode,
s.sid,
s.serial#,
l.id1,
l.id2
from v$session s, v$lock l
where s.sid = l.sid) ls
where o.object_id = ls.id1
and o.owner <> 'SYS'
order by o.owner, o.object_name;
KILL sid and seria
alter system kill session 'sid,serial#';l
到此解决问题
|
|