Sqlserver之死鎖查詢以及批量解鎖的實(shí)現(xiàn)方法
Sqlserver死鎖查詢以及批量解鎖方法
Sqlserver死鎖查詢以及解鎖方法
(1)下面是查詢死鎖進(jìn)程
select? request_session_id spid, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(死鎖進(jìn)程id) OBJECT_NAME(resource_associated_entity_id) tableName ?(死鎖進(jìn)程名稱) from sys.dm_tran_locks? where resource_type='OBJECT' ? ? ? ? ? ? ? ? ? ? ? ? ?(數(shù)據(jù)類型所有)
(2)殺死死鎖進(jìn)程
declare @spid int ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//聲明id Set ? ? @spid = 62 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //設(shè)置死鎖id declare @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_locks where ? ?resource_type='OBJECT'
解決sqlserver死鎖問題
創(chuàng)造死鎖
-- 開始事務(wù) BEGIN TRANSACTION? update job set create_user='0000' where id = '1' WAITFOR DELAY '02:00' -- 執(zhí)行查詢 select * from job where id = '1';
解決方法
方法一
- 打開sqlserver管理工具,新建sql查詢tab
- 執(zhí)行select * from master.sys.sysprocesses where dbid=db_id(‘數(shù)據(jù)庫名’)
- 然后會查詢到具體有哪個(gè)在連接到此數(shù)據(jù)庫
- 直接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掉后自動重建,但期間有一段時(shí)間,如果碰到這種情況,需要在執(zhí)行完kill命令后立即執(zhí)行脫機(jī)操作
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Sql存儲過程游標(biāo)循環(huán)的用法及sql如何使用cursor寫一個(gè)簡單的循環(huán)
這篇文章主要介紹了循環(huán)和游標(biāo)在Sql存儲過程中使用及sql如何使用cursor寫一個(gè)簡單的循環(huán)的相關(guān)資料,需要的朋友可以參考下2015-11-11SQL Server誤區(qū)30日談 第5天 AWE在64位SQL SERVER中必須開啟
在坊間流傳的有關(guān)AWE的設(shè)置的各種版本讓人非常困惑。比如說如何設(shè)置起作用,如何設(shè)置不起作用,在32位和64位上是否需要AWE等2013-01-01SQL SERVER中SELECT和SET賦值相同點(diǎn)與不同點(diǎn)(推薦)
SELECT和SET在SQL SERVER中都可以用來對變量進(jìn)行賦值,但其用法和效果在一些細(xì)節(jié)上有些不同。今天小編給大家分享SQL SERVER中SELECT和SET賦值相同點(diǎn)與不同點(diǎn),感興趣的朋友一起看看吧2019-12-12sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解
這篇文章主要給大家介紹了關(guān)于sql server把退款總金額拆分到盡量少的多個(gè)訂單中的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12MSSQL中刪除用戶時(shí)數(shù)據(jù)庫主體在該數(shù)據(jù)庫存中擁有架構(gòu) 無法刪除的解決方法
在ms sql2005 下面刪除一個(gè)數(shù)據(jù)庫的用戶的時(shí)候提示 數(shù)據(jù)庫主體在該數(shù)據(jù)庫中擁有架構(gòu),無法刪除的錯誤解決方案2013-08-08SQL數(shù)據(jù)庫連接超時(shí)時(shí)間已到的問題
這篇文章主要介紹了SQL數(shù)據(jù)庫連接超時(shí)時(shí)間已到的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04sqlserver中重復(fù)數(shù)據(jù)值只取一條的sql語句
sqlserver中有時(shí)候我們需要獲取多條重復(fù)數(shù)據(jù)的一條,需要的朋友可以參考下面的語句2012-05-05