select wtd_no,wtzh,xmbh,wtrq,zzrq,chuchangrq,jgbw,pz,qddj,jcry1_name,jcrq1,jcrq2,jc_wcflag,sh_wcflag,wt_wcflag,shry_name,shrq,cpbz
from rws
where substr(xmbh,1,2)= 'hn'
and CHUCHANGRQ<='2004-09-11'
and JC_WCFLAG ='未完成'
ORDER BY xmbh--在JC_WCFLAG字段上建个索引.如果还是很慢,可以考虑建函数索引substr(xmbh,1,2); 另:用了排序了,是要减慢速度的.
from rws
where substr(xmbh,1,2)= 'hn'
and CHUCHANGRQ<='2004-09-11'
and JC_WCFLAG ='未完成'
ORDER BY xmbh--在JC_WCFLAG字段上建个索引.如果还是很慢,可以考虑建函数索引substr(xmbh,1,2); 另:用了排序了,是要减慢速度的.
from rws
where substr(xmbh,1,2)= 'hn'
查询速度很快,以后增加一条件就慢一点再增加一条件就更慢一点,不知怎么才能提高查询速度
and CHUCHANGRQ<='2004-09-11'
and JC_WCFLAG ='未完成'
ORDER BY xmbh
-----------------------------------------------
改为
where JC_WCFLAG ='未完成'
and CHUCHANGRQ<='2004-09-11'
and substr(xmbh,1,2)= 'hn'
应该会快一些。
尽量不要用order by
1.你的SORT_AREA_SIZE太小,引起了sort(disk)
2.consistent gets的数值太大,可能是索引建的有问题,删除JC_WCFLAG与CHUCHANGRQ的索引
3.where substr(xmbh,1,2)= 'hn'改为 xmbh like 'hn%'
我想无论2,3做任何一个都可以加快你的效率。