多表查询中调用了【标量值函数】导致性能极慢,该如何解决
多表查询中调用了【标量值函数】导致性能极慢,该怎么解决?多表查询中调用了【标量值函数】导致性能极慢,该怎么
多表查询中调用了【标量值函数】导致性能极慢,该怎么解决? 多表查询中调用了【标量值函数】导致性能极慢,该怎么解决? select c1,c2,[标量值函数](id) from 表1 left join 表2 on ……[最优解释] 改成: select c1,c2,[非标量值函数](id) from 表1 left join 表2 on …… [其他解释] 将标量值函数拆了,作为表连入查询对象里面[其他解释] 把标量函数的逻辑放回查询里面实现,[其他解释]
引用: 非标量值函数是什么? 这个歌【标量值函数】是根据id来获取name,这个函数内的sql语句也很复杂,关联到3各表,如果把这个函数拆了,放到外面的查询语句中,没法关联条件,太复杂了 无非是指定条件查询吧,如果不能拆,那把当前的查询也写到函数里,直接用
select dbo.标题函数()
来执行.
[其他解释] 那要看你的标量函数写得怎么样。
标量函数相当于是关联子查询。
[其他解释] 如果2005以上可以考虑使用CROSS APPLY
[其他解释] 引用: 非标量值函数是什么? 这个歌【标量值函数】是根据id来获取name,这个函数内的sql语句也很复杂,关联到3各表,如果把这个函数拆了,放到外面的查询语句中,没法关联条件,太复杂了 没法关联条件??我不信,你的关联条件已经这么明显了
[其他解释] 非标量值函数是什么?
这个歌【标量值函数】是根据id来获取name,这个函数内的sql语句也很复杂,关联到3各表,如果把这个函数拆了,放到外面的查询语句中,没法关联条件,太复杂了
[其他解释] 好麻烦啊,不知道表结构,让我来优化sql,数据有10多万条,关系错综复杂,该怎么优化啊,我现在真是一点头绪都没有啊