当列存储表位于同一数据库中时,更改分区函数和方案

问题描述 投票:0回答:1

我有一个表,每周分区分区功能​​和方案定义。最重要的是这个表具有聚集的列存储索引,具有相同的每周分区方案。

所以现在我必须在分区功能和方案中添加更多范围。哪个失败并且错误地说“无法改变具有非空分区的分区功能.........”其中数据文件中只有4KB而没有加载数据。

从2014年Ssms的一篇文章中,我发现我们需要禁用聚簇索引并改变分区方案并再次启用。

请帮助解决这个问题。我正在使用2016 sql和企业版。提前致谢。

sql-server partitioning sql-server-2016 clustered-index columnstore
1个回答
2
投票

对于columnstore index,您需要清空要拆分的分区。这可以通过以下方式完成:

  • 将数据移动到其他分区(通过更新其分区键)
  • 改变分区模式(带有NEXT USED子句)和分区功能(带SPLIT RANGE子句)
  • 将数据移回正确的分区。

以上可以在一次交易中完成。

对于将来,(假设数据按日期周期划分),建议使用几个空分区,因此维护任务/作业可以自动拆分分区(并为将来的时间段创建一些新分区),而不会出现任何问题。

或者,您可以将ALTER TABLE与SWITCH PARTITION子句一起使用,但该方法的效率较低。 SWITCH PARTITION主要用于快速删除旧分区。

© www.soinside.com 2019 - 2024. All rights reserved.