小编Nar*_*dra的帖子

对聚集索引扫描和聚集索引搜索的澄清

我已创建了80000条记录与一个表Cluster Index上的CustomerID列。当我查询以下语句时,执行计划的行为有所不同。任何人都可以澄清相同。

select * from customer
Run Code Online (Sandbox Code Playgroud)

显示集群索引扫描,所以这是正确的。

select * from customer where CustomerID=80000
Run Code Online (Sandbox Code Playgroud)

执行计划显示 ClusterIndex Seek,所以这是正确的。

select * from customer where CustomerID between 1 and 70000
Run Code Online (Sandbox Code Playgroud)

执行计划仍然显示ClusterIndex 求问为什么?

根据统计,行数为 90%,然后优化器必须使用“ClusterIndex Scan”,但它使用的是“Cluster Index Seek”,为什么?所有统计数据都是最新的,我已经检查了估计行和实际行,那么为什么优化器选择“集群索引搜索”来获取总记录中 90% 的行。

index sql-server execution-plan sql-server-2014

6
推荐指数
2
解决办法
704
查看次数