sql server2012

时间:2015-09-15 10:36:49

标签: sql-server performance sql-server-2008 database-administration query-performance

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

以下是分区架构和分区功能:

创建分区方案[ps__fac_sale] AS PARTITION [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])
GO

创建分区功能pf__fac_sale作为值的左侧左侧
(20050630,20060630,20070630,20080630,20090630,20100630,20110630,
20120630,20130630)
GO

如您所见,20130630至20150915之后没有分区 问题是我们的客户给出了一个查询来执行查询 上面的表格whihc也使用了一些连接而且它 需要很长时间才能执行。

您能告诉我解决此问题的最佳方法吗?我们可以改变 分区功能和架构以及重建索引或必须完成 使用适当的分区功能将数据重新加载到另一个表中。模式?

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以调整分区功能和方案,而无需重建表格。在Microsoft的网站上查看alter partition functionalter partition scheme语法。基本语法是:

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