无法看到使用 KILL WITH STATUSONLY 回滚 SPID 的进度

Bra*_*adC 2 rollback sql-server

我在 SQL 2005 上有一个 SPID,它在活动监视器中显示为“ROLLBACK”模式(因为事务日志已满,而不是因为它被手动杀死)。我试着看看还有多少时间可以回滚

KILL 115 WITH STATUSONLY
Run Code Online (Sandbox Code Playgroud)

但它只是说“无法获取状态报告。进程 ID 115 的回滚操作不在进行中。”

我可以安全地发出“KILL 115”以便我可以看到回滚状态吗?这实际上对当前回滚的 spid什么作用吗?

Pau*_*dal 5

不,它什么也不做。你无法杀死正在回滚的 spid。回滚必须完成,否则数据库在事务上不一致并变为 SUSPECT。

来自 BOL:仅当会话 ID 或 UOW 由于先前的 KILL session ID|UOW 语句而当前正在回滚时,KILL WITH STATUSONLY 才会生成报告。

在这种情况下,它会自行回滚,因此您将无法看到进度。

希望这可以帮助。

  • 啊 - 很酷,但是编码太糟糕了。我会 ping 正确的开发团队并让他们知道。 (2认同)