SQL UDF 和查询优化 [重复]

Posted

技术标签:

【中文标题】SQL UDF 和查询优化 [重复]【英文标题】:SQL UDF and query optimization [duplicate] 【发布时间】:2014-02-13 10:53:50 【问题描述】:

如果我在 select 语句中使用 SQL 函数会影响性能吗? 我应该在 Select 语句中使用子查询还是 UDF,在这种情况下查询将得到最优化?

【问题讨论】:

还有Read here 【参考方案1】:

子查询将具有更好的性能,但 UDF 也可以更容易地在其他查询中重用。您可以使用它们将特定的计算或逻辑封装在一个地方。如果您需要更改逻辑,则只需更改 UDF,而不是更改集成该子查询的所有查询。 最后,在包含大量记录的查询中包含该函数时,您可以获得灵活性但会降低性能。

【讨论】:

哎呀,好的,已经回答了...【参考方案2】:

子查询的性能几乎总是比 UDF 好得多。

【讨论】:

那么 UDF 在 SQL Server 中的用途是什么?大多数情况下它们适合和使用在哪里? @Afzal 从头开始​​,当您需要重用代码或需要将复杂逻辑分解为模块时。当数据库较小时,快速部署它可能更重要,而不用担心性能。

以上是关于SQL UDF 和查询优化 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

优化 SQL 查询以避免重复

SQL Query 需要优化

SQL 优化器/执行计划 - 重复子查询

通过不重复数学来优化 sql 查询

MySQL5.7性能优化系列——SQL语句优化——使用物化策略优化子查询

需要帮助优化 SQL 查询