4

给定一个有两个索引的表,一个从另一个反向排序并给出这两个查询。

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 遵守索引提示而不使用其他提示吗?

4

1 回答 1

10

当我希望 SQL 在视图上使用索引时,我遇到了同样的问题。原来我也必须使用 NOEXPAND 选项:

WITH (FORCESEEK, INDEX (IndexName),NOEXPAND)

https://technet.microsoft.com/en-us/library/bb510478%28v=sql.105%29.aspx

于 2015-12-31T10:27:27.357 回答