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

How to delete a filegroup from a partitioned table (SQL Server 2012)

我有一个巨大的数据库,table 包含十亿条记录。我需要每月清理此 table(根据日期字段删除最旧的记录)。

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

bcp 数据输出 + 截断 + bcp 数据输入也太长了。

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

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

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