【发布时间】:2015-01-27 10:06:21
【问题描述】:
据我所知,堆表是没有聚集索引并且没有物理顺序的表。 我有一个 120k 行的堆表“扫描”,我正在使用这个选择:
SELECT id FROM scan
如果我为“id”列创建非聚集索引,我会得到 223 次物理读取。 如果我删除非聚集索引并更改表以使“id”成为我的主键(以及我的聚集索引),我将获得 515 次物理读取。
如果聚集索引表是这样的图片:
为什么聚集索引扫描像表扫描一样工作? (或者在检索所有行的情况下更糟)。为什么它不使用块较少且已经具有我需要的ID的“聚集索引表”?
【问题讨论】:
标签: sql sql-server indexing sql-execution-plan full-table-scan