给定一个表上有两个索引,一个表从另一个表中反向排序并给出这两个查询。
Select value From SomeTable wITH (INDEX(IV_Sort_Asc))
Select value From SomeTable wITH (INDEX(IV_Sort_Desc))
我在SQL Server 2008中遇到了一个忽略提示的案例,在这两种情况下都使用了IV_Sort_Desc
索引而不是第一个索引。
我意识到很多人会立即建议不提供提示,但鉴于我的具体情况,这不是一个选择。
导致这种情况的原因是什么,我该怎么做才能解决这个问题?当然,您会期望SQL Server遵守索引提示而不使用其他提示吗?
答案 0 :(得分:6)
当我希望SQL在视图上使用索引时遇到了同样的问题。我发现我必须使用NOEXPAND选项:
WITH (FORCESEEK, INDEX (IndexName),NOEXPAND)
https://technet.microsoft.com/en-us/library/bb510478%28v=sql.105%29.aspx