下面的SQL查询,当日期在时间间隔不大时比如开始和结束日期都是03/31/03时大约用18秒,而当开始和结束时间是03/01/03,03/31/03也就是说查一个月的数据时特别慢曾经等待30分钟没有出来,请各位大侠帮忙修改一下提高查询速度。SELECT matltran.ref-num,matltran.ref-line-suf,matltran.loc,matltran.item,item.description,SUM(matltran.qty)
FROM matltran,item,jobroute
WHERE matltran.item=item.item AND matltran.ref-num=jobroute.job AND matltran.ref-line-suf=jobroute.suffix
AND matltran.qty<>0 AND (matltran.trans-type)="f"
AND matltran.trans-date>=03/31/03
AND matltran.trans-date<=03/31/03
AND jobroute.wc='GZZX'
GROUP BY matltran.ref-num,matltran.ref-line-suf,matltran.loc
FROM matltran,item,jobroute
WHERE matltran.item=item.item AND matltran.ref-num=jobroute.job AND matltran.ref-line-suf=jobroute.suffix
AND matltran.qty<>0 AND (matltran.trans-type)="f"
AND matltran.trans-date>=03/31/03
AND matltran.trans-date<=03/31/03
AND jobroute.wc='GZZX'
GROUP BY matltran.ref-num,matltran.ref-line-suf,matltran.loc
我看sql语句没问题,几种方法你试试:
1、变成后台存储过程;
2、把你的语句放到sql server的Query Analyzer中试一下速度,如果不是30分钟,那看一下是否你数据库控件其它事件消耗时间。
SELECT matltran.ref-num,matltran.ref-line-suf,matltran.loc,matltran.item,item.description,SUM(matltran.qty)
FROM matltran,item,jobroute
WHERE matltran.trans-date>=03/31/03
AND matltran.trans-date<=03/31/03
AND matltran.qty<>0 AND (matltran.trans-type)="f"
AND jobroute.wc='GZZX'
AND matltran.item=item.item AND matltran.ref-num=jobroute.job
AND matltran.ref-line-suf=jobroute.suffix
GROUP BY matltran.ref-num,matltran.ref-line-suf,matltran.loc