gpt4 book ai didi

sql-server-2005 - Microsoft SQL Server 中存储过程与标量值函数的性能

转载 作者:行者123 更新时间:2023-12-04 18:40:38 28 4
gpt4 key购买 nike

我想知道存储过程和标量值函数之间的性能差异。现在我主要使用标量值函数,因为我可以在其他查​​询中使用它们(并且 99% 的时间它们返回 1 个值)。但是有一些我从未在其他查询中使用过的标量值函数,通常我用简单的 SELECT dbo.somefunction (parameter) 调用它们,仅此而已。

从性能的角度来看,将它们迁移到存储过程会更好吗?

最佳答案

标量值函数在每次调用时都会重新编译。这是因为它们不能包含在由查询优化器/处理器处理的 sql 创建的计划缓存中。

对于你只调用一次 udf 的情况,(如 Select dbo.UDFName(params) )它真的无关紧要,但如果你在查询中使用标量值 udf检查一百万行,udf 将被编译一百万次。这肯定会影响性能。有一种技术(如果算法可以写在基于集合的结构中),您可以将标量 UDF 转换为所谓的表值内联 udf,返回一行/一列表......这些可以是包含在 sql 查询中的计划缓存与 sql 的其余部分一起,因此它们不受此性能影响......

关于sql-server-2005 - Microsoft SQL Server 中存储过程与标量值函数的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929349/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com