执行计划中未使用创建的筛选索引

时间:2014-12-08 11:54:01

标签: sql sql-server-2008 indexing

我正在尝试在sql server 2008 R2上使用过滤索引。

我能够成功创建索引,但在执行查询时,即使在使用主键删除所有索引之后,也不会使用创建的索引。

我还尝试清除计划缓存,但执行计划没有变化。

CREATE NONCLUSTERED INDEX [IX_MyTable_test] ON [MyTable]
(
    COL01 ASC
)
WHERE ([FK_ID]=(34))

DBCC FREEPROCCACHE

DECLARE @SQL NVARCHAR(MAX), @ProductID INT 
SET @ProductID = 34 
SET @SQL = N'select top 1 COL01 from [MyTable] 
where [FK_ID] =' + CAST(@ProductID AS VARCHAR(10)) 
EXECUTE sp_executesql @SQL    

select top 1 COL01 from [MyTable] 
where [FK_ID] = cast( 34 as varchar(10))

我检查了类似的问题,但找不到任何解决方法。当尝试使用adventureworks 2012数据库的类似脚本时,在那里使用了创建的索引。

那么,是否需要在数据库级别进行任何设置或如何使用过滤后的索引?

0 个答案:

没有答案