【发布时间】:2019-02-13 18:16:28
【问题描述】:
我有一个带有两列条件的WHERE 子句:
WHERE A = 1 AND B = 2
A 列是聚集索引,而 B 列是非聚集索引。
我的问题是 - 在此特定查询中的 B 列上使用非聚集索引有什么好处?
【问题讨论】:
-
您可以在查询中强制使用特定索引,并比较实际的执行计划以明确。
标签: sql-server
我有一个带有两列条件的WHERE 子句:
WHERE A = 1 AND B = 2
A 列是聚集索引,而 B 列是非聚集索引。
我的问题是 - 在此特定查询中的 B 列上使用非聚集索引有什么好处?
【问题讨论】:
标签: sql-server
在这种情况下,总是返回 0 或 1 条记录,因为默认情况下,尽管it is not required,集群索引是唯一的。如果聚集索引是唯一的,则 B 列是否有索引都无关紧要,它不会在此查询执行计划中使用。否则索引可以根据统计数据使用。
您可以通过阅读执行计划来验证这一点。
【讨论】: