Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1269030
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 系统运维

2009-05-14 11:07:50

RPGIV编程问题百解(27)RPG遍历记录处理性能改善
 
问题:
 
    我想请教一下,当RPG程序所要处理的数据量非常大的时候(例如用主表100万条记录,再遍历上1000万条记录的副表),这种情况下,该如何来提高程序的运行效率而又不过多占用系统资源?
 
回答:
 
    对记录遍历处理,用rpg cycle处理效率是最高的。
    rpg的诞生,ibm就提供rpg处理的最佳处理模式:cycle。只不过,现代编程非常少用rpg cycle。
    RPG报表生成器,就是程序自动完成输入输出处理。后来,非常大的客户不习惯程序中没有read、write的语句,ibm就添加了这类处理指令。呵呵,每个read需要占用系统7、8ns。
 
又问:
 
    就是系统自动循环读记录了吧,这个是通过什么方法提高效率的?有IO消耗吗?
 
回答:
 
    IO肯定要使用,只不过比read语句处理时间缩短。
 
又问:
   
    感觉程序环易读性不强,也不容易控制。我一般简单的遍历程序会用程序环。
 
回答:
 
    对中国程序员来说,rpg cycle是个非常抽象的东西。
    每个计算机语言都有它的特性。C语言就没有read语句,但是它可以达到read的效果。rpg就是像C中那样,read语句实现read的处理。cycle可能像C处理read那样,使用底层的处理。
 
其它:
rpg cycle处理:
    用P定义rpg的主处理文件,也就是rpg处理的触发处理的数据源。每个rpg只允许一个P类文件。其它S和O可以多个。
阅读(948) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~