![我可以提高已终止并正在回滚的进程的优先级吗?](https://linux22.com/image/523800/%E6%88%91%E5%8F%AF%E4%BB%A5%E6%8F%90%E9%AB%98%E5%B7%B2%E7%BB%88%E6%AD%A2%E5%B9%B6%E6%AD%A3%E5%9C%A8%E5%9B%9E%E6%BB%9A%E7%9A%84%E8%BF%9B%E7%A8%8B%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%E5%90%97%EF%BC%9F.png)
我有一项工作通常运行大约 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 重新启动可以在这种情况下提供帮助,但如果出现问题,请不要哭泣:-)
如果这是生产,则等待或删除/恢复。您不能在生产中说“我不关心表的状态。退出就好。”...