我有一项工作通常运行大约 2 小时。今天早上它仍在运行 5 小时,我决定将其终止。它已经处于“KILLED/ROLLBACK”状态很长一段时间了。当我再次运行 KILL 命令以获取回滚状态时,我得到了以下信息:
SPID 84:事务回滚正在进行中。预计回滚完成度:0%。预计剩余时间:0 秒。
有什么办法可以提高优先级或者告诉 SQL Server“快点”?:)
更新:
或者有没有办法让我说“我不关心桌子的状态。退出就好。”
答案1
在 SQL Server 2008 之前,我不知道有任何可能的解决方案。从 SQL Server 2008 开始,资源调控器它允许您指定工作量和使用的资源。我还没有用过它,所以我不能告诉你更多细节。
答案2
一点也不。
一种选择是停止 SQL Server,移动 MDF 和 LDF 文件,启动 SQL Server,删除可疑数据库,重新连接 MDF 文件,并希望您的数据库仍然有效。
或者恢复它。
我不是在开玩笑:ACID 强制回滚,并且在没有外部干预的情况下不会允许损坏的表。
有可能它因为其他原因而被阻止,但一般来说它会回滚事务。SQL Server 重新启动可以在这种情况下提供帮助,但如果出现问题,请不要哭泣:-)
如果这是生产,则等待或删除/恢复。您不能在生产中说“我不关心表的状态。退出就好。”...