我有一个存储过程,可以从数据库中获取客户列表。在该SP中,我在select查询中调用了2个标量函数,这对性能产生了极大的影响。
标量函数具有多个if动作,这些动作可以检查多种情况并获取客户许可信息,因此内联使用此查询更为复杂。
我知道在select语句中使用标量函数每次都会调用许多行。
我怀疑是避免这种性能影响的最佳替代方法是什么。
谢谢。
答案 0 :(得分:2)
该函数使SP变慢的部分原因是,在创建执行计划时,未考虑该函数的内部。 因此,首先,将代码制成内联代码将提高性能。但是我同意这可能非常丑陋,应该避免。
您可能应该使用临时表来准备数据,但是如果不看代码很难说