什么是内联函数?
What is Inlining a fuction?
sql 服务器中的内联是什么? ITVF 比 MTVF 好在哪里?
SQL Server 2019 引入了 内联 标量用户定义函数的功能。
UDF 有利于封装逻辑和代码重用,但是对于查询处理,由于它们必须如何实现的性质,传统上会产生性能开销,并阻止查询执行并行进行,因为查询在UDF 可能还需要并行性。
调用 UDF 时,SQL 服务器将其逻辑封装在“黑盒”中,并针对查询中的每一行逐行重复调用它。
感谢在 Microsoft Gray Systems 实验室 开展的工作,一个称为 FROID 的通用过程已在 SQL Server 2019克服了这个缺点,通过分析UDF将整个多语句函数转化为等价的关系代数表达式
这允许优化器将其逻辑实现为 apply
函数的一部分,它支持基于集合的优化处理并可以从并行性中受益,并且可以使以前的 RBAR 函数执行速度提高几个数量级。
sql 服务器中的内联是什么? ITVF 比 MTVF 好在哪里?
SQL Server 2019 引入了 内联 标量用户定义函数的功能。
UDF 有利于封装逻辑和代码重用,但是对于查询处理,由于它们必须如何实现的性质,传统上会产生性能开销,并阻止查询执行并行进行,因为查询在UDF 可能还需要并行性。
调用 UDF 时,SQL 服务器将其逻辑封装在“黑盒”中,并针对查询中的每一行逐行重复调用它。
感谢在 Microsoft Gray Systems 实验室 开展的工作,一个称为 FROID 的通用过程已在 SQL Server 2019克服了这个缺点,通过分析UDF将整个多语句函数转化为等价的关系代数表达式
这允许优化器将其逻辑实现为 apply
函数的一部分,它支持基于集合的优化处理并可以从并行性中受益,并且可以使以前的 RBAR 函数执行速度提高几个数量级。