我已创建了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% 的行。