您如何决定在 SQL Server 活动监视器中终止哪个进程?

Posted

技术标签:

【中文标题】您如何决定在 SQL Server 活动监视器中终止哪个进程?【英文标题】:How do you decide what process to kill in SQL Server Activity Monitor? 【发布时间】:2010-06-25 07:57:32 【问题描述】:

我不是 Db 人。但有时我会被要求检查 Db 并查看是否有一些进程阻塞了 Db,如果是,则 KILL!

您能否解释一下在查找要杀死的正确进程候选人方面阅读活动监视器的最佳方法是什么?首先要检查哪些列以及哪些值?

谢谢,

【问题讨论】:

【参考方案1】:

我不确定您为什么必须终止 SQL Server 中的任何进程。 SQL Server 在管理锁方面做得很好,如果真的有必要,SQL Server 会选择一个“死锁受害者”来杀死。 (我认为这部分取决于用户所属的角色)

我没想到你会得到任何有用的信息来确定你要杀的人。通常情况下,当您调查锁并选择要杀死的人时,锁可能已经解决了。

我认为你应该真正了解为什么你首先会获得锁 - 而不仅仅是杀死随机进程。

【讨论】:

这里是需要它的一种情况:我们必须使用第 3 方 ODBC 驱动程序从 SQL Server 2005 查询到远程源。偶尔使用它的作业会“卡住”,锁定表,这需要手动终止。【参考方案2】:

我首先查看活动监视器中的被阻止列,这将为您提供导致阻塞的进程的进程 ID。然后我会找到该进程并查看详细信息,以了解阻塞进程到底在做什么

【讨论】:

以上是关于您如何决定在 SQL Server 活动监视器中终止哪个进程?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 活动监视器在多长时间内查看最近的昂贵查询

SQL Server代理(8/12):使用SQL Server代理外部程序

SQL server Profiler 监视数据库活动

SQL Server第1部分:为什么要监视SQL日志

利用SQL活动和监视器找出耗时与占用CPU较高的不良SQL语句

SQL Server第2部分:简化身份验证和授权机制