我有一个SQL Server数据库。大小约为150GB,可以节省一些数据用于分析。每天都有新数据进入,我们需要删除旧数据(基于日期)。最近,每日数据量增加很多,很快就会达到每天8-9GB左右。
目前,我们以小批量删除,这需要很长时间才能完成。是否有一般指南使其更快?尝试删除前删除/禁用索引,删除完成后再重建索引。它没什么用。
或者,这完全取决于实际日期?
由于
答案 0 :(得分:2)
考虑到我将使用分区表的数据量,每天一个。
进出交换分区将是删除一天所有数据的最快方法。
编辑:由于截断分区并不像在SQL Server中那样简单,我想我会提供更多详细信息,以防您不熟悉分区
在SQL Server的下一个版本中,您应该只能TRUNCATE PARTITION
或类似的东西。在此期间,您必须按照以下步骤进行操作:
删除数据库中一天数据的最快方法是将表分区为白天,然后:
将要删除的分区换成另一个表:ALTER TABLE partitioned SWAP PARTITION n TO otherTableToDelete
。
TRUNCATE TABLE otherTableToDelete
。