gpt4 book ai didi

sql-server - "Estimated Number of Executions"膨胀了

转载 作者:行者123 更新时间:2023-12-04 02:09:09 27 4
gpt4 key购买 nike

我有这样一种情况,我认为是由于一些不正确的估计而选择了较慢的查询计划而不是较快的查询计划。但是,我无法弄清楚错误估计的来源。下面显示的是更快的计划,由于 Index Seek 的估计成本为 123,因此未选择该计划。实际上,成本并不像您从实际执行次数和估计执行次数之间的差异所看到的那么高。我的理解是执行次数是由嵌套循环顶部的行数驱动的。如您所见,估计的行数为 4878,这与实际情况非常接近。但是底部输入的估计执行次数是 61110,这还差得远。 FWIW,我已经通过全扫描更新了所有表的统计信息,并且 1.22 估计行数是正确的(对于每次执行)。

61110 号码是从哪里来的,有什么办法可以解决吗?

查询看起来像这样:

    SELECT
Top.Pk
FROM
Top
LEFT JOIN Bottom ON Bottom.Fk = Top.Pk
WHERE
Top.Date < GETUTCDATE()
AND Bottom.Fk IS NULL

Estimated Number of Executions wrong

最佳答案

虽然我仍然不完全理解这里的执行计划向我们展示了什么,但事实证明,可以通过指定 WITH (NOEXPAND) 来解决这个特定的问题实例。在索引 View 上,强制优化器考虑索引 View 上的索引(我认为它已经在执行计划中做了,但显然不是)。

关于sql-server - "Estimated Number of Executions"膨胀了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40467803/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com