救命呀??高手看看查询语句如何写??按照视图写的程序巨慢!!
whxxr 2006-05-22 01:49:59 drop view qv_grjbqk
/
create VIEW qv_grjbqk (dwdm,grdm,xm,sfzid,khrq,jjbl,bglx,yje,dwname,dwlx,ye,jzny,endjjrq) as
select a.dwdm,a.grdm,a.xm,a.sfzid,a.khrq,c.jjbl,b.bglx,c.gryje+c.dwyje+c.czyje as yje,d.dwname,d.dwlx,
(select nvl(sum(m.srje),0) - nvl(sum(m.zcje),0)
from q_grmx m
where m.dwdm=a.dwdm and m.grdm=a.grdm and (m.zjzl='01' or m.zjzl='02' and m.srje>0)
) as ye ,
( select max(n.jjny) from q_grmx n where n.dwdm=a.dwdm and n.grdm=a.grdm
) as jzny,
( select max(o.jxdate) from q_grmx o where o.dwdm=a.dwdm and o.grdm=a.grdm and o.zjzl='01' and o.srje>0
) as endjjrq
from q_grxx a,q_grxx_ztbginfo b,q_grxx_gzjsbginfo c,q_wldw d
where a.dwdm=b.dwdm and a.dwdm=c.dwdm and a.dwdm=d.dwdm and a.grdm=b.grdm and a.grdm=c.grdm and
b.bgdate=(select max(e.bgdate) from q_grxx_ztbginfo e where e.dwdm=a.dwdm and e.grdm=a.grdm) and
c.bgdate=(select max(f.bgdate) from q_grxx_gzjsbginfo f where f.dwdm=a.dwdm and f.grdm=a.grdm)
/
上面的是视图的SQL语句。Q_GRXX为30来万条记录,Q_GRXX_ZTBGINFO不到20万吧。Q_WLDW记录3600来条,Q_GRXX_GZJSGINFO也是30来万条,大于Q_GRXX表中的记录,Q_GRMX的记录为700来万条.要求将视图里面的数据写成文本文件.
他是按照单位导的.里面有运算的字段,我算了一下,如果一个单位有4000条的记录要运行5个小时.文件大概要2分钟才增长8K,如果单位记录少的话运行速度很快,文件的增长也很快.10000条记录的大小要3M多,有4分钟就运行完了,按20万人的话有1个半小时就运行完了.
高手们给支个招吧,看看单位记录多的如何使速度运行快.
机器配置:P4 2.93 CPU,1G 内存
请各位高手帮帮忙呀?保证给分!!!