代码之家  ›  专栏  ›  技术社区  ›  J. Mini

100是SELECT*FROM[多语句表值函数]查询基数估计的神奇数字吗?

  •  0
  • J. Mini  · 技术社区  · 1 年前

    我正在SQL Server 2019上运行。每当我写表格查询时

    SELECT * 
    FROM [Multi-Statement-Table-Valued-Function]
    

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

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

    1 回复  |  直到 1 年前
        1
  •  5
  •   Martin Smith    1 年前

    在SQL Server 2014和 SQL Server 2016和1用于早期版本

    Source

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

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

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

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

    缓存交错执行计划后,具有 对第一次执行的修正估计用于连续的 执行而不重新实例化交错执行。