具有公共子表达式假脱机的窗口聚合函数执行计划中的高逻辑读取
在执行计划中经常观察到大型表报告的高逻辑读取利用公共子表达式线轴。工作表逻辑读取的公式为:
Worktable Logical Reads = 1 + NumberOfRows * 2 + NumberOfGroups * 4
说明
与传统的假脱机表不同,工作表按行读取计数逻辑读取,导致逻辑读取计数膨胀。这是因为工作表位于服务器内部,并且哈希页计数对于分析来说价值较低。
公式细分如下:
其他见解
Paul White 在他的博客文章中解释说该公式与执行计划一致,其中两个辅助线轴被完全读取两次,并且主线轴发出(组数 1)行。额外的行由主线轴发出,表示最终组的结束。
结论
工作表逻辑读取的公式是理解膨胀逻辑的有用工具。在具有公共子表达式假脱机的执行计划中观察到的读取计数。通过认识到工作表对逻辑读取的计数不同,可以更轻松地解释读取统计数据并评估计划的效率。
以上是为什么我的窗口聚合查询显示高逻辑读取?的详细内容。更多信息请关注PHP中文网其他相关文章!