我发现如果查询小于或大于运算符的表,则sql server索引不能正常工作。
假设我有一个仅包含2列的简单表(TestTable),如下所示:
Column Name, column type, primary Key, index
iID, int, yes, cluster index
iCount, int, no, non-cluster index
name, nvarchar(255), no, no index
Run Code Online (Sandbox Code Playgroud)
现在,我以此查询表:
SELECT * FROM TestTable,其中iCount = 10。
很好,Sql服务器将对列iCount使用非群集索引来检索结果。
但是,如果我以此查询表:
SELECT * FROM TestTable,其中iCount <10,
SQL Server将对群集索引进行索引扫描以获取iID以检索结果。
我想知道为什么当我在查询中使用小于或大于运算符时,sql server无法使用正确的索引。