对主键(ID)进行索引扫描



查询

SELECT MAX(ID) FROM Product

https://www.brentozar.com/pastetheplan/?id=Skv5OqZBU

为什么优化器使用索引扫描,即使查询是基于主键(ID(的?

如果您阅读计划的"索引扫描"节点内的详细信息,您会发现它只需要返回1行。事实上,从末尾扫描1行比索引查找具有更好的性能。

MSSQL索引的物理结构是一个B+树。通过索引查找,意味着您从树部分开始查找O(log N(中的项。通过索引扫描,这意味着您从数据部分开始定位项目。这次你读一个,所以它是O(1(。

因此,实际上您的查询现在执行得非常快。

最新更新