我应该如何处理 Head Blocker 类型的 SQL 连接?

我应该如何处理 Head Blocker 类型的 SQL 连接?

我正在查看 SQL Server 2008 Management Studio 中的活动监视器。

我看到很多进程通过 Head Blocker 列中的值 1 表明它是一个阻塞进程。

这是正常的吗,或者我可能在这里遇到问题?

替代文本

答案1

不,不正常

导致阻塞的锁通常是因为

  • 无意中打开的事务(即未提交或回滚)
  • 长时间运行的事务/语句(删除需要几个小时)
  • 没有 SET XACT_ABORT 的客户端命令超时

你可以有问题的蜘蛛,但这只能治标不治本

一个非常有用的脚本,可以开始找出问题所在:通过文本和计划开启交易

答案2

是的,这是个问题。有些事务持有锁的时间比你希望的要长,也许持有锁的人出去吃午饭了?

相关内容