我有一个相当复杂的连接的执行计划,它显示在一个表上执行索引查找,其中“实际行数”读数为~70,000,而实际上表中总共只有约600行(估计的行数仅为127)。
请注意,所有统计信息都是最新的,查询的输入参数与编译proc时输入的参数完全相同。
为什么实际行数如此之高,“实际行数”究竟是什么意思?
我唯一的理论是,大量行与嵌套循环相关,并且此索引搜索正在执行多次 - “实际行数”实际上表示所有执行的总行数。如果是这种情况,估计的行数也意味着是所有执行的总行数?
答案 0 :(得分:10)
ActualRows 计算在物理运营商上调用 GetNext()的次数。
您还应该查看ActualRebinds, ActualRewinds and ActualEndOfScans以了解重新评估内循环的次数:
重新绑定表示一个或多个 连接的相关参数 改变了,内心必须 重新评估。 快退表示没有 相关参数的变化 并且先前的内部结果集可以是 重复使用。
答案 1 :(得分:3)
实际行数值是exec计划中该节点的所有已处理值的结果。所以是的,它考虑了嵌套循环连接。