小编And*_*ers的帖子

正在执行 SQL Server 回滚 - 如何停止它?

我有一个查询需要 6000 万行,将它们复制到一个新表中,对它们进行一些更新,然后将它们插入到另一个新表中。这一切都包含在一个事务中。一开始我认为这会很好,但意识到这是一个愚蠢的错误。

虽然它在我的本地实例机器上运行了 7 个小时,但在生产数据库上运行了 2 天多!厌倦了等待并意识到我的解决方案可能不是执行此操作的最佳方法,我关闭了查询窗口并终止了该过程。现在,它正在回滚。

同时,我运行了这个:KILL 60 WITH STATUSONLY 和 EXEC sp_who2 'active'。状态显示“SPID 60:正在进行事务回滚。估计回滚完成:62%。估计剩余时间:31849 秒”。秒和磁盘正在上升,所以我知道它正在尝试进行回滚。它非常缓慢,并且每隔几个小时就会完成一个百分比。

我的问题是,由于我的操作,数据库变得很大并且占用了磁盘空间。此外,我不关心我试图复制到的这两个新表。我想截断/删除它们,然后用更好的方法来解决这个问题。但是,我不能在回滚过程中截断/删除它们?我不太关心这些新表会发生什么。它们也位于自己的文件组和 .ndf 文件中。我只想尽快删除这些,这样我就可以恢复我更好的方法。我正在使用 SQL 2014 并且需要紧急帮助,因为今天是星期六,我不想打扰我的老板!:)

sql-server rollback

7
推荐指数
1
解决办法
6107
查看次数

标签 统计

rollback ×1

sql-server ×1