优化程序提高FoxPro数据库运行效率一例 上海 钱洪贤 1996-12-27 例如,有些数据的修改是有规律地成批运行的,如果不从软件上精心设计,可能要花费好长时间。 如:在笔者自己编制的数据库中,有一个字段为“质量原因”分别用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秒 因此,从软件上提高系统的运行速度,仍是程序设计的一个十分重要的问题。 (上海 钱洪贤)