gpt4 book ai didi

sql-server - 优化器如何处理对具有相同参数值的标量函数的调用?

转载 作者:行者123 更新时间:2023-12-04 05:44:27 25 4
gpt4 key购买 nike

我有一个使用标量函数的查询。唯一函数参数的值取自我查询中的一个字段(像这样):

SELECT
fn_MyFunc(MyField)
FROM MyTable

如果这个表中有几千行,而 MyField中只有几个不同的值,优化器是否足够聪明以知道它之前已经看过该值,还是仍会一遍又一遍地执行该函数?

最佳答案

用户定义函数只存储执行计划。现有的优化器无法缓存这些有用的信息。标量 udf 是一个黑盒子。优化器不会为您手动内存 UDF。

如果函数是确定性的,则提高性能的解决方案意味着相同的输入返回相同的输出,而不受时间和数据库的影响:

为该 UDF 的所有可能结果创建一个表,并将该表与查询连接起来。它将提供最佳性能/

关于sql-server - 优化器如何处理对具有相同参数值的标量函数的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10864457/

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