为什么具有公共子表达式假脱机的窗口聚合函数的逻辑读取如此高?
您已经注意到,在具有公共子表达式的执行计划中spools 中,报告的大表逻辑读取明显高于预期。调查揭示了一个似乎成立的公式:工作表逻辑读取 = 1 NumberOfRows 2 NumberOfGroups 4.
理解公式
高逻辑读取源自工作表处理读取的独特方式。此上下文中的逻辑读取指的是读取的行数,而不是散列页数。这意味着对于处理的每一行,工作表都会注册一次逻辑读取。
逻辑读取细分
复制尝试使用较低的逻辑读取
您尝试使用堆表复制进程仅显示 11 次逻辑读取,因为:
结论
你发现的公式成立,因为它准确地反映了工作表读取的行。更高的逻辑读取是由于基于行的计数方法,而不是效率低下。原始查询中使用的嵌套循环计划进一步放大了此计数。
以上是为什么具有公共子表达式假脱机的窗口聚合函数会导致如此高的逻辑读取?的详细内容。更多信息请关注PHP中文网其他相关文章!