标签: sql sql-server tsql sqlperformance inline-table-function
我在数据仓库系统中有一个使用内联表值函数(ITVF)的存储过程。如果我将ITVF的代码复制到过程本身,那么它将大大提高性能(从50秒到9秒)。我印象深刻的是,ITVF的执行就像过程本身中的代码一样。
我看到使用ITVF时查询计划中的“实际行数”和“估计行数”之间存在巨大差异。
在ITVF中是否有可能进行参数嗅探?还有什么原因呢?谢谢。
答案 0 :(得分:0)
您的函数使查询不可保留,因此查询优化器无法为其创建适当的执行计划。这就是为什么实际行与估计行之间会有巨大差异的原因。