我对此有一个类似的问题(Does the number of columns affect query performance?)。但是,我想得到一个更详细的解释。我怀疑并确认减少列数会改善性能。
这两个表都有1900万行和c1上的NC索引
SELECT TOP 2 Million
c1,
c2
FROM Table
我最好的猜测(基于我的研究)是较少的列导致每页存储更多行。这将导致从缓存中读取更少的页面。
这是正确的,还是我还缺少其他东西?
答案 0 :(得分:0)
你是对的,建议在sql查询中只使用require列。就表A中的46列而言,你应该修改它。
一页大小为8k。
我认为创建或阅读的数据页数取决于以下内容:
i)表格中的列数
ii)一列的列大小:像列一样持有xml,或nvarchar或varchar(max)
如果列数或列数非常大,那么数据页可能只包含行,或者更糟的一行可能存在于多个数据页中。
iii)从查询返回的行数:
iv)表中使用的索引。
请批评。