例如,有些數據的修改是有規律地成批運行的,如果不從軟件上精心設計,可能要花費好長時間。
如:在筆者自己編制的數據庫中,有一個字段為“質量原因”分別用001,002,003表示,它對應的就是設計,制造,焊接,現需要把各原因分別替換到數據庫中,有下列幾種截然不同的實現方法:
方法一:
use dm.dbf &&原因字段名zs,代碼字段名bh
rcpl all zs with 設計 for bh=001
rcpl all zs with 制造 for bh=002
rcpl all zs with 焊接 for bh=003
在這方法中,發生頻率高的應放在前面,以減少比較次數,提高運行速度。上述方法一雖然是掃描全庫多遍,但分類情況較復雜。
方法二:
use dm.dbf
repl all zs with iif(bh=001,設計,iif(bh=002,制造,iif(bh=003,焊接)))
合理而又巧妙地使用iif()函數,使程序簡潔精煉,提高if...else...endif結構的效率。
方法三:
DIMENSION MONEY(003)
money(001)=設計
money(002)=制造
money(003)=焊接
use dm
repl all zs with money(bh)
方法三運行效率比方法二更高。方法二要調用iif()函數進行判斷,方法三用一個數組問題就全解決。
筆者曾對一個有二萬條記錄的數據庫用上述三種方法在486機器上運行試驗,結果如下:
方法一:50秒
方法二:21秒
方法三:19秒
因此,從軟件上提高系統的運行速度,仍是程序設計的一個十分重要的問題。