SQL执行计划显示"实际行数",它大于表大小

Jus*_*tin 5 sql sql-server sql-execution-plan

我有一个相当复杂的连接的执行计划,它显示在一个表上执行索引查找,其中"实际行数"读数为~70,000,而实际上表中总共只有约600行(估计数量)行只有127).

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

为什么实际行数如此之高,"实际行数"的实际含义是什么?

我唯一的理论是,大量的行与嵌套循环有关,而且这个索引查找正在执行多次 - "实际行数"实际上代表了所有执行的总行数.如果是这种情况,估计的行数也意味着所有执行的总行数?

Rem*_*anu 10

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

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

甲重新绑定是指一个或更多的连接改变和内侧必须重新评估的相关参数.甲倒带表示无相关参数的变化和现有内结果集可以被再利用.