6

我有一个相当复杂的连接的执行计划,它显示在“实际行数”读取〜70,000的表上执行索引搜索,而实际上表中总共只有〜600行(估计数行数仅为 127)。

请注意,所有统计信息都是最新的,查询的输入参数与编译 proc 时输入的参数完全相同。

为什么实际行数这么高,“实际行数”这个数字到底是什么意思?

我唯一的理论是大量的行与嵌套循环有关,并且这个索引搜索被执行了多次——“实际行数”实际上代表了所有执行的总行数。如果是这种情况,估计的行数是否也意味着所有执行的总行数?

4

2 回答 2

12

ActualRows计算在物理运算符上调用GetNext()的次数。

您还应该查看ActualRebinds、ActualRewinds 和 ActualEndOfScans以了解重新评估内部循环的次数:

重新绑定意味着连接的一个或多个相关参数已更改,并且必须重新评估内侧。倒带意味着没有任何相关参数发生变化,并且可以重用先前的内部结果集。

于 2009-06-17T12:24:43.193 回答
3

实际行数值是执行计划中该节点的所有处理值的结果。所以是的,它考虑了嵌套循环连接。

于 2009-06-17T12:02:52.237 回答