【问题标题】:SQL Server archiving table partitionsSQL Server 归档表分区
【发布时间】:2020-02-18 13:28:39
【问题描述】:

我使用的是 SQL Server 2008 R2,它在表分区方面存在限制。最大限制为 1000 个分区。 SQL Server 2008 R2 不支持扩展分区限制。我需要归档分区以释放生产表。我会将分区移动到一个链接服务器,我将在其中保留所有存档数据以节省 D.W. 的存储空间。我需要一些关于使用方法的建议。

我的想法是在用于归档的链接服务器上创建一个未分区的表,然后移动数据,然后从源表中删除分区。使用 switch 而不是复制 - 删除这是否可行?

在存档表中也使用分区会更好吗?

【问题讨论】:

  • 不言而喻,升级到受支持的 SQL Server 版本应该在您的优先级列表中居高不下,原因有很多,包括分区计数。 几乎不言而喻,但我不得不说。
  • 您的服务器甚至没有扩展支持。在这种情况下,升级更具吸引力,因为它也可以从根本上解决您的分区问题,而代价仅仅是恢复(诚然,还需要测试向后兼容性)。

标签: sql-server sql-server-2008-r2


【解决方案1】:

您可以将分区从分区表切换到独立表,这在几秒钟内完成。因此,您的解决方案可以是:

 ALTER TABLE YourTable SWITCH PARTITION x TO ArchivingTable;

 -- Move data from the local ArchivingTable to your linked server (INSERT
 SELECT or bcp..)

 DROP TABLE ArchivingTable;

您还可以将现有分区与老化数据合并,以便为新数据释放分区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    相关资源
    最近更新 更多