【发布时间】:2021-11-24 01:11:06
【问题描述】:
如果您运行以下查询,例如,行可以按任何顺序返回:
select *
from [table_a];
聚集索引根据您选择的任何列对表进行排序。
话虽如此,如果我在 [column_a], [column_b], and [column_c] 上有一个聚集索引并从上面运行相同的查询,那么数据是否总是会根据该顺序返回,因为这是创建聚集索引的顺序?
更多说明:
如果我在索引中没有的东西上添加ORDER BY 子句,执行计划将有一个排序运算符。
如果我在聚集索引中使用的所有列上都有一个ORDER BY 子句,则执行计划将没有排序运算符。
这就是我首先提出这个问题的原因。
【问题讨论】:
-
并行扫描,即使是聚集索引,也会以随机顺序返回。而这只是可能选择的开始
标签: sql-server tsql indexing clustered-index