插件窝 干货文章 SQLSERVER 出现死锁查找方法和解决办法(推荐)

SQLSERVER 出现死锁查找方法和解决办法(推荐)

死锁 class 阻塞 查询 796    来源:    2024-10-16

项目场景:

https://www.jb51.net/database/316030hx6.htm
SQLSERVER
出现死锁查找方法和解决办法

1.查询死锁语句

1.1  blocked<>0
select dbid,* from sys.sysprocesses
where 1=1
and spid >50
and blocked <> 0

查询结果,如图所示
被阻塞的数据库ID:7
备阻塞会话ID:55、57、58
正在阻塞当前会话的ID:58、56

1.1 查询被阻塞的数据

Select name,dbid from master.sys.sysdatabases where dbid=7

1.2 查询被阻塞的表(注意:一定要在被阻塞的数据库中查询)

SELECT
    request_session_id spid,
    OBJECT_NAME(
        resource_associated_entity_id
    ) tableName
FROM
    sys.dm_tran_locks
WHERE
    resource_type = 'OBJECT'

1.3 查询阻塞或者死锁的语句

blocked:58

dbcc inputbuffer(58)

2 杀死死锁

blocked:58

kill 58

到此这篇关于SQLSERVER 出现死锁查找方法和解决办法的文章就介绍到这了,更多相关SQLSERVER 死锁查找内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!