gpt4 book ai didi

c# - 我应该在 SQL Server 还是 C# 中使用 "User Defined Functions"?

转载 作者:行者123 更新时间:2023-11-30 21:21:23 26 4
gpt4 key购买 nike

我有一个相当复杂的数学函数,有人建议我在 SQL Server 中将其实现为用户定义函数,以便可以在 SQL 查询中高效地使用它。

问题是它必须非常高效,因为它可能每秒执行数千次,后来我听说 UDF 非常低效。

有人建议我可以用 C# 实现该功能,这样效率会高得多。

我该怎么办?

最佳答案

复杂的数学函数在 C# 中的执行速度比 T-SQL 快得多。非常值得一试。

编辑 在回答您的评论时,我找到了 this blog post ,其中指出:

User-defined scalar functions are likely the most obvious candidates for SQLCLR usage. There are two primary reasons for this. The first is that CLR functions actually have lower invocation overhead than T-SQL functions. T-SQL functions require the runtime to create a new T-SQL frame, which is expensive. CLR functions are embedded in the plan as a function pointer for direct execution.

在单个测试的结论中:

In the case of this prime number validating function the performance advantage of SQLCLR over T-SQL is an order of magnitude in speedup!

因此,C# 听起来是个不错的选择。

关于c# - 我应该在 SQL Server 还是 C# 中使用 "User Defined Functions"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2733634/

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