定位锁等待问题

查看被挂起的事务(TRX_ID)

SELECT VTW.ID AS TRX_ID, VS.SESS_ID ,VS.SQL_TEXT,VS.APPNAME ,VS.CLNT_IP FROM VTRXWAITVTWLEFTJOINVTRXWAIT VTW LEFT JOIN VTRXWAITVTWLEFTJOINVTRX VT ON
(VTW.ID=VT.ID) LEFT JOIN V$SESSIONS VS ON (VT.SESS_ID=VS.SESS_ID);

通过挂起事务ID(TRX_ID)找到它等待的事务(WAIT_FOR_ID)。

SELECT WAIT_FOR_ID,WAIT_TIME FROM V$TRXWAIT WHERE ID=321646;

通过等待事务ID(WAIT_FOR_ID)定位到连接以及执行的语句

SELECT VT.ID AS TRX_ID,VS.SESS_ID,VS.SQL_TEXT ,VS.APPNAME,VS.CLNT_IP FROM
VTRXVTLEFTJOINVTRX VT LEFT JOIN VTRXVTLEFTJOINVSESSIONS VS ON (VT.SESS_ID=VS.SESS_ID) WHERE
VT.ID = 321643;

SP_CLOSE_SESSION关闭等待事务(SESS_ID)

SP_CLOSE_SESSION(142344256);

另一种查找锁等待的方式

select * from vtrxwait;select∗fromvtrxwait; select * from vtrxwait;selectfromvlock t where t.blocked =1;
select a.sess_id, a.sql_text, a.state, b.* from vsessionsa,vsessions a, vsessionsa,vtrxwait b
where a.trx_id = b.id;
select a.trx_id,a.* from v$sessions a;
commit;
select * from sys.sysobjects t where id= 1069;
sp_close_session(131853344); --结束某个会话

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐