SQL Server 2014 - 优化器不在非聚簇索引上使用分区

时间:2016-08-08 20:46:16

标签: sql sql-server sql-server-2014 database-partitioning

我正在使用SQL Server 2014,我有一个包含120列和超过3000万行的大表。我的聚集索引位于DATE类型的列上。

我创建了一个分区函数:

CREATE PARTITION FUNCTION [20yearsDate](date) 
AS RANGE RIGHT FOR VALUES (N'2015-07-07T00:00:00.000', N'2015-08-07T00:00:00.000', N'2015-09-07T00:00:00.000', N'2015-10-07T00:00:00.000', N'2015-11-07T00:00:00.000', N'2015-12-07T00:00:00.000', N'2016-01-07T00:00:00.000', N'2016-02-07T00:00:00.000', N'2016-03-07T00:00:00.000', N'2016-04-07T00:00:00.000', N'2016-05-07T00:00:00.000', N'2016-06-07T00:00:00.000'........etc............

(每月一个分区)

现在,当我正在运行WHERE语句位于date列(过去3个月)的查询时,它使用在分区方案上分区的非聚集索引:20yearsDate,on专栏:日期。

但问题是优化器使用了所有241个分区!

如果我的where语句是过去3个月,为什么不使用3或4个分区?

0 个答案:

没有答案