+ -
当前位置:首页 → 问答吧 → SQL语句调优

SQL语句调优

时间:2011-12-10

来源:互联网

select round(decode(sum(te1+te2),0,0,sum(te1)/sum(te1+te2)*100),2),ny from sg t 
where data in 
(select distinct t1.data from kj t1,hl t2 
where t1.data =t2.data and qy='dba' and jb='l' and t1.hsj='qj' or t1.fdf='ju')
 and ny between 200902 and 201106 group by ny 

上面这个在oracle数据库中,花费时间大约为5秒,用户实在受不了,其中,in 中传入的data数量有70左右,
我试过用一些表连接,时间也没有提高。
请问各位大神如何优化这个sQL语句,十分感激!!!

作者: zengqiang1   发布时间: 2011-12-10

首先自己顶一个!!!着急!!!!

作者: zengqiang1   发布时间: 2011-12-10

不加where条件的SQL语句查出来大概多少记录,加where条件查出来大概多少记录?

作者: chengccy2010   发布时间: 2011-12-10

where data in  

改成 where exists 试试

作者: chengbar   发布时间: 2011-12-10

where t1.data =t2.data and qy='dba' and jb='l' and t1.hsj='qj' or t1.fdf='ju'
红色部分要不要加括号呀?感觉怪怪的

作者: xpingping   发布时间: 2011-12-10