SQL server删除了大量行



我也发现了类似的帖子,但仍然没有解决我的问题,所以我会努力创建这个帖子。我有一个大表(大约5亿个条目(,我需要通过一个简单的where子句删除其中的一半:"where Resolution=100"。我需要保留另一半,因此,我不能截断表。如果我把另一半复制到另一个表中,也会花太多时间,而这是一个生产数据库。。。

我也试着一批一批地删除它们,但没有成功。

任何其他想法都将不胜感激。

编辑:忘了提,恢复模式设置为简单,但仍然。。。

如果日志无法扩展,恢复模式简单将没有帮助-它会在事务后删除日志,但事务仍然是2.5亿行的删除。小型,附带

你能做的是:

  • 将其作为脚本运行
  • 删除循环中较少的行

Delete top 10000000是有效的,您可以根据自己的条件执行此操作,直到@@rowcount=0,这表示找不到任何行。

这使事务保持较小,从而避免了可能会破坏您的事务日志的超大型事务——我认为这是一个问题,因为您明智地决定只声明"不起作用",而不给出它给您带来的错误。

最新更新