列的数量如何影响SQL查询的逻辑读取次数?
列的数量如何影响SQL查询的逻辑读取次数?
我对这个问题(Does the number of columns affect query performance?)有一个类似的问题。然而,我想要得到一个更详细的解释。我怀疑并确认,拥有较少的列会提高性能。
因此,我进行了以下测试
设置
两个表都有1900万行,并且在c1上有一个非聚集索引。
- 表A - 46列
- 表B - 15列
查询
SELECT TOP 2 Million c1, c2 FROM Table
- 结果
当我对这两个表运行相同的查询时,表B的速度明显更快。逻辑读取减少了53%。在任何一张表上都没有物理读取。
问题
根据我的研究,我最好的猜测是较少的列会导致每页存储更多的行。这将导致从缓存中读取的页面更少。
这个猜测正确吗,还是我漏掉了其他什么东西?