100 是 SELECT * FROM [Multi-Statement-Table-Valued-Function] 查询的基数估计的幻数吗?

J. *_*ini 1 t-sql sql-server user-defined-functions sql-server-2019 cardinality-estimation

我正在 SQL Server 2019 上运行。每当我编写以下形式的查询时

SELECT * 
FROM [Multi-Statement-Table-Valued-Function]
Run Code Online (Sandbox Code Playgroud)

执行计划显示它期望从此进程中获取 100 行。这是一致且有记录的模式吗?或者这只是我的服务器的一个怪癖?

我有一组关于 SQL Server 2014 基数估计的注释,我相信估计方法自 2014 年以来没有改变,但他们没有提到这个神奇的数字。

Mar*_*ith 5

\n

MSTVF 在 SQL Server 2014 和\nSQL Server 2016 中的固定基数猜测为 \xe2\x80\x9c100\xe2\x80\x9d,对于早期版本为 \xe2\x80\x9c1\xe2\x80\x9d

\n
\n

来源

\n

更高版本(兼容级别 >= SQL Server 2017)具有交错执行,该源代码中也对此进行了讨论。

\n

在 2022 年进行测试时,100在获得“估计”计划时,该估计仍用作初始估计 - 但交错执行意味着该计划将被替换。

\n

上述文章的另一相关段落是

\n
\n

交错执行如何用于连续执行?

\n

缓存交错执行计划后,\n在第一次执行时经过修改的估计的计划将用于连续\n执行,而无需重新实例化交错执行。

\n
\n