SQL Server 2008 R2和索引视图中的执行计划
-
09-10-2019 - |
题
我创建了一个索引视图(我的观点)由三列组成:
Table1_ID (int not null)
Object_CreationDate (datetime, null)
Objec_Count(bigint null)
我创造了 群集唯一索引 ix_1在两列上: Table1_ID
和 Object_CreationDate
我想运行两个查询:
1.
Select * from [dbo].MyView
where Table1_ID = 10
2.
Select * from [dbo].MyView
where Table1_ID = 10
AND Object_CreationDate <= GETDATE()
1-ST查询快速运行(即使 DBCC DropCleanBuffers())并通过使用MyView和IX_1使用简单的执行计划
2-nd查询运行不太快,因为它使用“旧”执行计划(在三个表中通过几个索引并嵌套循环寻求)
我误解了这种情况。至于我,这是自然使用ix_1和 我的观点 对于2 nd查询。
此外,我等待2 nd查询的运行速度相同,甚至比1-ST更快,因为它使用了两个列 在哪里条款 在群集索引中。
我尝试运行2 nd查询 with(index=IX_1)
并更新列的统计信息,但仍具有相同的执行计划。
是否有可能强制使用SQL 我的观点 和 ix_1 ?
不隶属于 StackOverflow