需要在sql server上取消长时间运行的查询

时间:2014-04-05 06:14:14

标签: sql-server

我一直在我们的某个数据库上运行删除查询。查询已经运行了大约7个小时,现在我需要取消它。如果我取消它会导致回滚吗?那么,有没有办法取消查询而不会导致回滚?

由于

2 个答案:

答案 0 :(得分:1)

是的,它会导致回滚。您可以预期回滚比原始删除花费更多时间(因为:回滚总是单线程,b:回滚也被记录)。如果重新启动实例,则相同。 SQL Server总是最好将数据库返回到事务一致状态。

添加到我自己的答案:) 从表中删除大量数据的最佳方法是在较小的块中进行,例如每次5000行,每个块都在自己的事务中。我知道现在已经太晚了,但下一次。 除非您从表中删除所有行,否则它是TRUNCATE TABLE最快的方法。

答案 1 :(得分:0)

  

如果我取消它会导致回滚吗?

是的,它可能比目前运行的时间更长。

  

nd,有没有办法取消查询而不会导致回滚?

没有。现在数据处于不一致的状态而没有回滚。