sql server 2012中的表分区不完整

Posted

技术标签:

【中文标题】sql server 2012中的表分区不完整【英文标题】:Table Partitioning incomplete in sql server2012 【发布时间】:2015-09-15 10:36:49 【问题描述】:

我有一个包含 8300 万条记录的大表。 有一个名为“TradingDateKey”的列,根据该列对表进行分区。

以下是分区架构和分区函数:

创建分区方案 [ps__fac_sale] 作为分区 [pf__fac_sale] 到 ([fg__fac_sale__2005], [fg__fac_sale__2006], [fg__fac_sale__2007], [fg__fac_sale__2008],[fg__fac_sale__2009],[fg__fac_sale__2010], [fg__fac_sale__2011],[fg__fac_sale__2012],[fg__fac_sale__2013], [fg__fac_sale__2014]) 去吧

创建分区函数 pf__fac_sale 作为值的左侧范围 (20050630, 20060630, 20070630, 20080630, 20090630, 20100630, 20110630, 20120630, 20130630) 去吧

如您所见,从 20130630 到 20150915 之后没有分区。 问题是我们有一个由我们的客户提供的查询来针对 上表 whihc 也使用了一些连接,它 执行需要很长时间。

能否请您告诉我解决此问题的最佳方法。我们可以改变 分区函数和架构并重建索引,否则它必须是完整的 使用适当的分区函数和架构将数据重新加载到另一个表中?.

感谢您的帮助。谢谢

【问题讨论】:

【参考方案1】:

您可以在不重建表的情况下调整分区功能和方案。在 Microsoft 网站上查看 alter partition function 和 alter partition scheme 语法。基本语法是:

alter partition function pf__fac_sale() split range (newrangevalue);
go
alter partition scheme ps__fac_sale next used [filegroup]

【讨论】:

以上是关于sql server 2012中的表分区不完整的主要内容,如果未能解决你的问题,请参考以下文章

根据sql server 2012中后续行索引之间的差异创建分区

删除分区 SQL Server 2008

SQL Server 2005中的分区表:将已分区表转换成普通表

深入浅出SQL Server 2008 分区函数和分区表

计算 SQL Server 数据库中的表数 [重复]

SQL Server 表分区之水平表分区