SQL存储过程的select语句中标量函数的替代选项

时间:2019-04-02 05:36:52

标签: sql-server tsql stored-procedures user-defined-functions

我有一个存储过程,可以从数据库中获取客户列表。在该SP中,我在select查询中调用了2个标量函数,这对性能产生了极大的影响。

标量函数具有多个if动作,这些动作可以检查多种情况并获取客户许可信息,因此内联使用此查询更为复杂。

我知道在select语句中使用标量函数每次都会调用许多行。

我怀疑是避免这种性能影响的最佳替代方法是什么。

谢谢。

1 个答案:

答案 0 :(得分:2)

该函数使SP变慢的部分原因是,在创建执行计划时,未考虑该函数的内部。 因此,首先,将代码制成内联代码将提高性能。但是我同意这可能非常丑陋,应该避免。

您可能应该使用临时表来准备数据,但是如果不看代码很难说