我试图让分区视图工作,但仍然看到查询优化器扫描两个表。这是我的脚本:
CREATE TABLE A(DataDate [date] NOT NULL CHECK(datepart(yy, DataDate) <= 2010))
CREATE TABLE B(DataDate [date] NOT NULL CHECK(datepart(yy, DataDate) > 2010))
CREATE VIEW V AS SELECT * FROM A UNION ALL SELECT * FROM B
select * from V where datepart(yy, DataDate) = 2009
但是当我查看执行计划时,我看到表A和表B都被扫描了,并且两个表的“执行次数”都是 1。我希望表A有Number of Executions = 1
,表B有Number of Executions = 0
。我在SQL Server 2012
。
有人可以澄清这应该如何工作吗?谢谢你。