我无法获得将常规表连接到分区视图以消除不符合分区列谓词的表的查询。特别是,我对我对分区视图进行 LEFT OUTER JOIN 并且我的谓词涵盖一系列值的情况感兴趣。当我修改查询以使用 INNER JOIN 或将谓词限制为单个值时,表被正确消除。这是一个演示该问题的脚本。我在 SQL Server 2016 SP1 中对此进行了测试。
--Create 2 tables for prices; 1 for 2017 and 1 for 2018
CREATE TABLE Price_2017
(
PriceDate DATE NOT NULL,
PriceValue FLOAT NOT NULL
)
GO
ALTER TABLE Price_2017 ADD CONSTRAINT PK_Price_2017 PRIMARY KEY(PriceDate);
GO
ALTER TABLE Price_2017 WITH CHECK ADD CONSTRAINT CK_Price_2017
CHECK (PriceDate >= '2017-01-01' AND PriceDate <= '2017-12-31');
GO
ALTER TABLE Price_2017 CHECK CONSTRAINT CK_Price_2017;
GO
CREATE TABLE Price_2018
(
PriceDate DATE NOT NULL, …Run Code Online (Sandbox Code Playgroud)