SQL:什么是聚集索引扫描,为何/何时使用它?

时间:2010-10-29 13:34:45

标签: sql-server-2008

SQL Server 2008

看看执行计划,集群指数扫描占70%,为什么?它是什么?

4 个答案:

答案 0 :(得分:4)

聚簇索引扫描表示正在读取聚簇索引的所有行。它通常在大型表上表现不佳,并且通常表明需要进行额外的索引或查询调优。

另请参阅:Clustered Index Scan Showplan Operator

答案 1 :(得分:2)

最有可能的是,它会查看主键索引,默认情况下是聚簇索引。不是桌面扫描,但足够接近。

简单来说,您缺少与WHERE子句匹配的索引,并包含SELECT子句。

执行SELECT * FROM ...时也会发生这种情况,因为扫描PK /聚集索引比使用任何WHERE索引+键查找更容易

架构+查询会有所帮助。

答案 2 :(得分:1)

群集索引是SQL Server中的一个特殊索引,它是SQL Server将数据物理存储在磁盘上的顺序(因此每个表只能有一个聚簇索引,因为您只能以一种方式实际存储它:))。

因此,您的SQL导致引擎使用此索引扫描表。

答案 3 :(得分:1)

聚簇索引强制基础表记录按索引定义的顺序进行物理保存。它通常由主键使用。

如果您正在进行群集索引扫描,并且您对主键以外的某些键使用order by子句,那么您很可能错过了更好的索引......