我有一个SQL Server数据库。大小约为150 is,这为分析保存了一些数据。每天都有新的数据进来,我们需要删除旧的数据(基于日期)。最近,每天的数据量增加了很多,很快就会达到每天8-9 9GB。
目前我们是小批量删除,需要很长时间才能完成。有没有能让它更快的通用指南?尝试在删除前删除/禁用索引,删除完成后再重新生成索引。这不会有多大帮助。
或者,这将完全取决于实际日期?
谢谢
发布于 2014-04-01 06:26:42
给定数据量,我将使用一个分区表,每天一个。
换入换出分区将是删除一天内所有数据的最快方法。
编辑:由于截断分区并不像它在SQL Server中应该做的那样简单,我想我将提供更多细节,如果您不熟悉分区的话。
在SQL Server的下一个版本中,您应该能够只使用TRUNCATE PARTITION
或类似的东西。在此期间,您必须执行以下操作:
删除数据库中某一天的数据的最快方法是按天对表进行分区,然后:
将您想要删除的分区换出到另一个表中:ALTER TABLE partitioned SWAP PARTITION n TO otherTableToDelete
.
TRUNCATE TABLE otherTableToDelete
.
https://stackoverflow.com/questions/22773369
复制相似问题