回 帖 发 新 帖 刷新版面

主题:如何提高更新记录的速度

如何改进下面代码,以提高更新速度.
目的主要是想用xsdjb表中树材种,等级,类别,材长x,材长d,径级x,径级d与xsjscjb表相同时的单价替换xsjscjb表中的单价记录,以计算出xsjscjb表中的金额
下面的代码在xsdjb表只有40条记录,xsjscjb表只有10条记录的情况下,运行也要4-8秒,速度太慢.

SELECT xsdjb.树材种,xsdjb.等级,xsdjb.类别,xsdjb.材长x,xsdjb.材长d,xsdjb.径级x,xsdjb.径级d,xsdjb.单价;
 FROM xsdjb where xsdjb.文件号=xsdjwjh; 
 into array lsxsdjsz                      
**************
for i=1 to 1
replace all xsjscjb.单价 with 0 for xsjscjb.结算单号 =scgzjsdh
endfor
xsszgs=alen(lsxsdjsz,1)
xsjsbcbl=1
do while xsjsbcbl<=xsszgs
*for viv=1 to alen(lsxsdjsz,1)
xsjsbcbl1='"'+lsxsdjsz(xsjsbcbl,1)+'"'
xsjsbcbl7='"'+lsxsdjsz(xsjsbcbl,2)+'"'
xsjsbcbl8='"'+lsxsdjsz(xsjsbcbl,3)+'"'
xsjsbcbl2=lsxsdjsz(xsjsbcbl,4)
xsjsbcbl3=lsxsdjsz(xsjsbcbl,5)
xsjsbcbl4=lsxsdjsz(xsjsbcbl,6)
xsjsbcbl5=lsxsdjsz(xsjsbcbl,7)
xsjsbcbl6=lsxsdjsz(xsjsbcbl,8)
for i=1 to 1
replace all xsjscjb.单价 with xsjsbcbl6 for alltrim(xsjscjb.树材种)=alltrim(&xsjsbcbl1) and ;
alltrim(xsjscjb.等级)=alltrim(&xsjsbcbl7) and alltrim(xsjscjb.类别)=alltrim(&xsjsbcbl8) and ;
xsjscjb.材长>=xsjsbcbl2 and xsjscjb.材长<=xsjsbcbl3;
and  xsjscjb.径级 >=xsjsbcbl4 and  xsjscjb.径级 <=xsjsbcbl5 and xsjscjb.结算单号 =scgzjsdh
endfor
xsjsbcbl=xsjsbcbl+1
enddo

回复列表 (共2个回复)

沙发


对上面问题的补充:  上面代码在未连编成可执行文件前,速度很快,不到1秒,只是在连编后速度会变慢,不知什么原因?

板凳

为何不用 update xsjscjb

我来回复

您尚未登录,请登录后再回复。点此登录或注册