代码之家  ›  专栏  ›  技术社区  ›  developer

SQL中内联表值函数的性能影响

  •  0
  • developer  · 技术社区  · 7 年前

    我有一个在数据仓库系统中使用内联表值函数(ITVF)的存储过程。如果我将ITVF的代码复制到过程本身,那么它会大大提高性能(从50秒提高到9秒)。我的印象是,ITVF的执行就像过程本身中的代码一样。

    在使用ITVF时,我可以看到查询计划中的实际行和估计行之间存在巨大差异。

    ITVF中是否存在参数嗅探的可能性?还有什么原因呢?谢谢

    1 回复  |  直到 7 年前
        1
  •  0
  •   j.v.    7 年前

    您的函数使查询不可搜索,因此查询优化器无法为其创建适当的执行计划。这就是为什么实际行和估计行之间存在巨大差异。