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


    目录
  • 项目场景:
    • 1.查询死锁语句
      • 1.1 查询被阻塞的数据
      • 1.2 查询被阻塞的表(注意:一定要在被阻塞的数据库中查询)
      • 1.3 查询阻塞或者死锁的语句
    • 2 杀死死锁

    项目场景:
    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 死锁查找内容请搜索电脑手机教程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持电脑手机教程网!