免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: tianya0229
打印 上一主题 下一主题

并发处理解决方案,程式实现 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-10-23 21:43 |显示全部楼层
个人建议如下:

1。如果没使用到RRN号,建议定期对PF文件做RGZPFM;

2。在RPG程序中使用BLOCK关键词提高读写文件速度;

RPG编程通常要与物理文件、逻辑文件等各类文件打交道。在RPG的F定义行里有一BLOCK关键词,善加使用这一关键词可以大幅度提高文件的读写速度。这在对具有大量数据的文件进行批处理时,效果特别明显。使用方法如下:

文件描述规范里有一BLOCK(*YES|*NO)关键词。它控制着文件的块读写方式。该关键词只对DISK或SEQ类型的文件有效。我们常见的物理文件(PF)或逻辑文件(LF)就是DISK文件。

在缺省情况下,即F行关键词位置没有定义BLOCK时,在编译RPG程序时,对于输入记录,BLOCK缺省值为*NO,即文件不会以块的方式读入;对于输出记录,BLOCK缺省直为*YES。但上面编译缺省值需要先符合下面条件:

(1) 文件是程序描述文件(program-described)。
(2) 文件如果是外部描述文件(externally-described),则文件应只有一个记录格式(Record Format)。
(3) 在文件规范描述里(F行),不能使用RECNO关键词。

如果要使文件输入记录以块方式(BLOCK)读入,则F行必须指定BLOCK关键词,并赋值为*YES, 比如,下面定义了一外部描述的DISK类型的文件,其读入方式采用BLOCK方式:

FMYPF    IF   E         DISK   BLOCK(*YES)

论坛徽章:
0
2 [报告]
发表于 2008-10-24 00:03 |显示全部楼层
备1笔删1笔?不明白这样处理的用意。如果想做历史数据归档,为啥不直接使用:

===> CPYF FROMFILE(LIB/PF) TOFILE(NEWLIB/NEWPF) MBROPT(*REPLACE) CRTFILE(*NO) FMTOPT(*MAP *DROP)                                                               

开始还以为利用RPG复杂计算处理一个庞大的PF文件。

论坛徽章:
0
3 [报告]
发表于 2008-10-24 16:47 |显示全部楼层
原帖由 tianya0229 于 2008-10-24 11:33 发表
这种方法不安全。用RPG来实现,可以利用COMMIT来确保原表的资料不出问题。所以我就选择用RPG了。现在问题是:想优化程式。轻舟大哥的“以块方式(BLOCK)读入”我觉得比较适合我这边的要求。还请轻舟大哥有空详细 ...


前面已经讲清楚了,在F表增加参数就可以了.

另外,看看程序是否能够调入到内存去处理,效率可能会提高些.

论坛徽章:
0
4 [报告]
发表于 2008-10-25 08:36 |显示全部楼层
原帖由 tianya0229 于 2008-10-24 19:58 发表
调到内存,是什么意思?

命令SETOBJACC可以使文件或程序常驻内存
http://bbs.chinaunix.net/viewthr ... 3Ddigest&page=2

论坛徽章:
0
5 [报告]
发表于 2008-10-26 20:52 |显示全部楼层
原帖由 mamei 于 2008-10-26 19:59 发表
===========================================
http://bbs.chinaunix.net/viewthr ... p%3Bfilter%3Ddigest
=============================================
从这个贴子来 ...

恩,也是个不错的处理方案。LZ可以试试改善RPG程序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP