我一直在我们的某个数据库上运行删除查询。查询已经运行了大约7个小时,现在我需要取消它。如果我取消它会导致回滚吗?那么,有没有办法取消查询而不会导致回滚?
由于
答案 0 :(得分:1)
是的,它会导致回滚。您可以预期回滚比原始删除花费更多时间(因为:回滚总是单线程,b:回滚也被记录)。如果重新启动实例,则相同。 SQL Server总是最好将数据库返回到事务一致状态。
添加到我自己的答案:) 从表中删除大量数据的最佳方法是在较小的块中进行,例如每次5000行,每个块都在自己的事务中。我知道现在已经太晚了,但下一次。 除非您从表中删除所有行,否则它是TRUNCATE TABLE最快的方法。
答案 1 :(得分:0)
如果我取消它会导致回滚吗?
是的,它可能比目前运行的时间更长。
nd,有没有办法取消查询而不会导致回滚?
没有。现在数据处于不一致的状态而没有回滚。