SQLServer中如何快速、有条件地删除海量数据
最近,一个朋友问我。他说他删除了数百万到千万在SQLServer数据。It was very slow. 他帮助他分析它。他提出了一些建议。也许它对许多人有用。如果你的硬盘空间小,又不想设置数据库日志是最小的(因为我希望其他正常的日志仍然希望记录),并要求比较高的速度,并清除所有数据,建议你使用turncate表,因为截断是DDL,不回滚,不写日志的速度更快,那么还有一个自动递增,到1年初,删除产生回滚,如果删除大量数据表将是缓慢的,但将需要大量的回滚段,同时记录日志G级;如果有条件删除时间如在'2006-3-10'do,可以登录删除不能记录,答案是否定的,SQL Server引擎将日志删除在设计操作。到目前为止,没有W对强制某句话不记入日志的处分。如果删除表的时间'2006-3-10的参与,将有大量的记录,由于涉及的多个记录。(3-4克),如果可行的话,我建议以下方式。
选择要保存到新表的记录。如果使用完全恢复模式
根据选择到记录的数目,日志可能更大。
从表到表选择*时间= '2006-03-10
然后直接截断表。无恢复模式将日志记录:截断表表1
最后,表更名为表1:EC sp_rename'table2 ','table1