为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:统信
【CPU】:
【问题描述】*:
排查一下应用业务是否存在逻辑冲突
可以参考这些语句查询一下,是哪个会话导致的死锁
-----锁处理
1、查询当前存在的锁
SELECT
VTW.ID AS TRX_ID,VS.SESS_ID,VS.SQL_TEXT,VS.APPNAME,VS.CLNT_IP
FROM
V$TRXWAIT VTW
LEFT JOIN V$TRX VT
ON
(VTW.ID=VT.ID)
LEFT JOIN V$SESSIONS VS
ON
(VT.SESS_ID=VS.SESS_ID);
2、通过当前锁的TRX_ID查询引起死锁的语句的事物ID
SELECT WAIT_FOR_ID,WAIT_TIME FROM V$TRXWAIT WHERE ID=<TRX_ID>;
3、通过事物ID查询引起锁的语句
SELECT
VT.ID AS TRX_ID,VS.SESS_ID,VS.SQL_TEXT,VS.APPNAME,VS.CLNT_IP
FROM
V$TRX VT
LEFT JOIN V$SESSIONS VS
ON
(VT.SESS_ID=VS.SESS_ID)
WHERE
VT.ID = <>;
杀掉会话:
sp_close_session(sess_id);
如果是DSC的话,需要两个节点都把会话清理掉。