【发布时间】:2012-06-22 12:00:45
【问题描述】:
我正在尝试让分区视图工作,但仍然看到查询优化器扫描两个表。这是我的脚本:
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。
有人可以澄清这应该如何工作吗?谢谢。
【问题讨论】:
标签: sql-server sql-server-2012 partitioned-view