如何从分区表中删除文件组(SQL Server 2012)

时间:2015-02-19 01:24:30

标签: sql sql-server partitioning

我有一个庞大的数据库,其中包含一个包含数十亿条记录的表。我需要每月清理一次该表(根据日期字段删除最旧的记录)。

由于我需要为一个月的数据删除几亿条记录,因此执行DELETE甚至删除块会花费太长时间,因为索引会减慢进程。

bcp data out + truncate + bcp data in也太长了。

现在我想尝试的解决方案是将表分区为不同的文件组(每个分区一个月)。我得到了构建分区的部分,但是如何删除文件组及其数据?

1 个答案:

答案 0 :(得分:1)

您可以将分区切换到新表,然后删除该表。除了您切换到的表必须位于同一文件组的限制之外,文件组与它实际上没有任何关系。您不一定要将分区映射到单独的文件组,尽管出于其他原因可能需要这样做。

Here's a good example of a partition-wise rolloff in sql server