C
c_jt
Unregistered / Unconfirmed
GUEST, unregistred user!
总共涉及5个表:期初库,销售库(头,单体),收款库(头,单体),求客户的应收未收情况.
现在使用的办法是通过临时表,使用insert 表a (字段a,字段b...) select 字段a....from
的方法,分别将各个表和视图中符合条件的记录插入到临时表a中,例子语句如下:
,最后对临时表中的记录进行操作,语句如下:
现在程序使用的时候占用cpu资源非常严重,从win2000 server中的性能管理器中发现当进行
这些操作的时候,cpu的使用常常上升到100,这时候系统的其他机器就非常慢,甚至响应时间过长,引起程序没响应
现在请教各位高手,看看有什么好办法可以明显提高查询的速度.并且减少查询所占用的cpu资源
使用的服务器是ibm的5600内存是256Mcpu是PIII800xeon
现在使用的办法是通过临时表,使用insert 表a (字段a,字段b...) select 字段a....from
的方法,分别将各个表和视图中符合条件的记录插入到临时表a中,例子语句如下:
代码:
qry5.Close;
qry5.sql.Clear;
qry5.SQL.Add('insert findreceivezxk');
qry5.sql.Add('(no, finddate,finddate1, spellid, summD,summi,summ3 ) select '+inttostr(no0));
qry5.SQl.Add(','''+datetostr(wwDBDateTimePicker3.date)+''','''+datetostr(wwDBDateTimePicker6.date)+''',');
qry5.sql.add('a.spellid,summD=sum(a.summD),summI=sum(a.summi),summ3=sum(a.summ3) ');
qry5.sql.add('from OutputitemSumm a where a.status in (''3'',''D'',''I'')');
qry5.sql.add('and a.status1=''Z'' and a.orddate>='''+datetostr(wwDBDateTimePicker3.date)+'''');
qry5.sql.add('and a.orddate<='''+datetostr(wwDBDateTimePicker6.date)+'''');
qry5.sql.add('group by a.spellid order by a.spellid');
qry5.ExecSQL; //所有的summD,summI,summ3 //该日销售有关金额
代码:
qry5.close;
qry5.sql.Clear;
qry5.sql.Add('insert findreceivezxk');
qry5.sql.Add('(no, sumall,finddate,finddate1, spellid,summda,summia,summ3a,qtyda,qty3a,receivea,sumsumma,summd1a,summi1a,summ31a,summZTa,qimoa)');
qry5.sql.Add('SELECT '+inttostr(no0)+',''A'','''+datetostr(wwDBDateTimePicker3.date)+''','''+datetostr(wwDBDateTimePicker6.date)+''',');
qry5.sql.Add('SPELLID, SUM(summD) summDa, SUM(summI) summIa, SUM(summ3) summ3a,');
qry5.sql.Add('SUM(qtyD) qtyDa, SUM(qty3) qty3a, SUM(receive+receivezt) receivea, SUM(sumsumm) sumsumma,');
qry5.sql.Add('SUM(summD1) summD1a, SUM(summI1) summI1a, SUM(summ31) summ31a,SUM(summZT+receivezt1) summZTa,SUM(qimo) qimoa');
qry5.sql.Add('FROM findreceiveZXK where no='''+inttostr(no0)+'''');
qry5.sql.Add('GROUP BY SPELLID order by spellid');
qry5.ExecSQL;
这些操作的时候,cpu的使用常常上升到100,这时候系统的其他机器就非常慢,甚至响应时间过长,引起程序没响应
现在请教各位高手,看看有什么好办法可以明显提高查询的速度.并且减少查询所占用的cpu资源
使用的服务器是ibm的5600内存是256Mcpu是PIII800xeon