1

我正在运行来自sys.sysprocesses
其中一个结果的查询是使用kpid“4056”的进程,SPId 390 但是当我看到 Windows 任务管理器或tasklist从命令提示符 1-我试图kill 390在 sql server 中杀死这个进程时:它不会杀死并留在 kill/rollbak 2-我试图通过命令提示符杀死taskkill /pid 4056 它说:“PID 没有退出的进程。” 无论如何要杀死这个过程?

4

1 回答 1

1

在我的故事中,使用以下类似查询终止针对 Sharepoint 运行的进程失败并长时间处于终止/回滚状态。我试图在不重新启动 sql server 的情况下解决这个问题,但我没有成功,但会告诉你在哪里可以找到 KPID 以及如何杀死它们

SELECT  f1, f2
    FROM    OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                       'WSS;IMEX=1; DATABASE=http://portal.local/AA/XX/YY;LIST=Feedback;VIEW=;RetrieveIds=Yes;',
                       'SELECT   f1, f2  FROM LIST') AS derivedtbl_1
  • 通过查看鼠标悬停工具提示中显示的位置,使用Process Explorer找到正确的 sqlserver.exe 实例
  • 转到线程节点,您将在那里找到内核线程
    • 但不建议杀死它,它会挂起 SQL 服务器,在我的情况下它会让你重新启动它
  • 重新启动 DTC(分布式事务协调器)服务和 SQL 服务器代理服务是另一个建议,可能有助于安全地杀死该机器中的 kpid
于 2014-01-27T13:53:29.450 回答