首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多表查询中调用了【标量值函数】导致性能极慢,该如何解决

2012-12-19 
多表查询中调用了【标量值函数】导致性能极慢,该怎么解决?多表查询中调用了【标量值函数】导致性能极慢,该怎么

多表查询中调用了【标量值函数】导致性能极慢,该怎么解决?
多表查询中调用了【标量值函数】导致性能极慢,该怎么解决?

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多万条,关系错综复杂,该怎么优化啊,我现在真是一点头绪都没有啊

热点排行