场景2:用ID和SomeDate列作为谓词使用等于号进行过滤

  这个场景同样非常简单,使用和非聚集索引顺序相同的子集作为过滤条件,因此也使用查找方式找到数据。

 

  场景3:用ID和SomeString列作为谓词使用等于号进行过滤

  这个场景有点意思了。只能使用部分使用ID作为索引查找条件,因为SomeString列并不是索引的第二列。这个索引的第二列是SomeDate但查询没有按照SomeDate进行过滤。因此这个查询首先使用ID进行过滤,然后过滤后的列进行字符串比较来找到匹配的行。虽然这个操作是通过查找实现,但SQL Server仅仅使用查找找到ID,然后再将过滤后的行进行字符串比较。

 

  场景4:用SomeDate和SomeString列作为谓词使用等于号进行过滤

  在这个场景中,SQL Server不能使用查找了。索引的第一列并不包含在这个查询的谓词之内。只能通过扫描来满足这个查询。实际上,SQL Server需要将表中这两列的每一行都和给定值进行比较来找到所需的行。

 

  我觉得上述知识已经基本涵盖了有关索引的等式谓词。或许我这篇文章让你更迷惑了。但是至少我希望你更好的了解索引以及等号匹配。