jra*_*ara 7 sql-server locking
我是一个偶然的 DBA 并且仍在学习。
当我从 DMV:s 或 Activity Monitor 看到某个进程正在阻塞另一个进程时,应该怎么做?
我应该简单地终止这些进程还是有办法“释放”或者抢占这种阻塞?
尽管已经回答了这个问题并且答案被接受了,但我将尝试为相反的方法提出一个案例......
不要盲目杀死 SPID
除非您知道 SPID 做了什么工作,否则您不会了解您将要启动的回滚的规模。
最糟糕的阻塞链是那些意外使您的 24/7 系统瘫痪的链。在 99% 的情况下,该阻塞链开头的查询将是一个普通的旧选择查询出错,将所有写入活动排在其后面。在这些情况下,KILL 将挽救局面。
在另外 1% 的时间里,该恶意查询将是长时间运行的事务的最后一步,回滚所需的时间与到达当前阶段的时间一样长。花点时间了解您是如何到达这里的,在 99% 的时间里都是不必要的。1% 的时间,您可以节省几分钟/几小时/几天的停机时间。