微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题优化程序提高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秒
  因此,从软件上提高系统的运行速度,仍是程序设计的一个十分重要的问题。
  (上海  钱洪贤)