1.檢視程序
show processlist;
2.檢視是否鎖表
show open tables where in_use > 0;
3.檢視正在鎖的事務
select * from information_schema.innodb_locks;
4.檢視等待鎖的事務
select * from information_schema.innodb_lock_waits;
5.查詢 正在執行的事務
select * from information_schema.innodb_trx;
6.殺死被鎖線程
trx_mysql_thread_id 為被鎖的事務id,可以使用kill 執行緒id殺死對應的執行緒,達到釋放鎖效果。
查詢死鎖的方法
死鎖主要是由於操作不當導致執行緒之間出現相互等待,一般有source code的和pdb就可以找到死鎖的原因,只要在code中不出現terminatethread,一般均可找到原因。若使用了第三方庫,別人的code就不在我們的管控範圍以內,很難定位到具體原因。一般可以看到ntdll的臨界區被占用,r...
查詢死鎖 和 解決死鎖
sql中執行 sp who lock kill 1 1 語句中查詢出來的id set ansi nulls on go set quoted identifier on go alter procedure dbo sp who lock as begin declare spid int decl...
查詢死鎖與自動刪除死鎖聯接
exec dbo ht who lockex 1 dbc create procedure dbo ht who lockex iskill as bit 是否自動刪除死鎖聯接 asbegin declare spid int,bl int,inttransactioncountonentry in...