文章詳情頁(yè)
Sqlserver之死鎖查詢以及批量解鎖的實(shí)現(xiàn)方法
瀏覽:2日期:2023-09-25 20:57:30
目錄Sqlserver死鎖查詢以及批量解鎖方法Sqlserver死鎖查詢以及解鎖方法sqlserver 批量kill死鎖解決sqlserver死鎖問(wèn)題創(chuàng)造死鎖解決方法總結(jié)Sqlserver死鎖查詢以及批量解鎖方法Sqlserver死鎖查詢以及解鎖方法
(1)下面是查詢死鎖進(jìn)程
select?request_session_id spid, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(死鎖進(jìn)程id)OBJECT_NAME(resource_associated_entity_id) tableName ?(死鎖進(jìn)程名稱(chēng))from sys.dm_tran_locks?where resource_type='OBJECT' ? ? ? ? ? ? ? ? ? ? ? ? ?(數(shù)據(jù)類(lèi)型所有)(2)殺死死鎖進(jìn)程
declare @spid int ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//聲明idSet ? ? @spid = 62 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置死鎖iddeclare @sql varchar(1000) ? ? ? ? ? ? ? ? ? ? ? ? ? ? //聲明sql?set ? ? @sql='kill '+cast(@spid as varchar) ? ? ? ? ? ?//設(shè)置 kill掉死鎖進(jìn)程exec ? ?(@sql) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //執(zhí)行或者
kill 62;
sqlserver 批量kill死鎖select 'kill '+CONVERT(varchar,request_session_id) ,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_lockswhere? ?resource_type='OBJECT'解決sqlserver死鎖問(wèn)題創(chuàng)造死鎖-- 開(kāi)始事務(wù)BEGIN TRANSACTION?update job set create_user='0000' where WAITFOR DELAY '02:00'-- 執(zhí)行查詢select * from job where id = '1';解決方法方法一
打開(kāi)sqlserver管理工具,新建sql查詢tab執(zhí)行select * from master.sys.sysprocesses where dbid=db_id(‘數(shù)據(jù)庫(kù)名’)然后會(huì)查詢到具體有哪個(gè)在連接到此數(shù)據(jù)庫(kù)直接KILL spid的具體數(shù)值就可以了方法二
-- 首先查詢select ? ?? ? request_session_id spid, ??? ? OBJECT_NAME(resource_associated_entity_id) tableName ? ?from ? ?? ? sys.dm_tran_locks ??where ? ?? ? resource_type='OBJECT'?-- 然后執(zhí)行?? ?kill 67;注意事項(xiàng):
有些用戶連接可以在kill掉后自動(dòng)重建,但期間有一段時(shí)間,如果碰到這種情況,需要在執(zhí)行完kill命令后立即執(zhí)行脫機(jī)操作
總結(jié)以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
標(biāo)簽:
MsSQL
數(shù)據(jù)庫(kù)
排行榜
