我创建了一个RPGLE程序来处理巨大的文件。我正在将该程序作为批处理作业提交,并且需要大量时间来处理所有记录。因此,我计划多次提交工作。可以这样做吗?
如果可以的话,您能建议如何实施吗?
注意:我使用的不是本地I / O文件。
答案 0 :(得分:2)
取决于程序,但是通常提交多个副本是有效的解决方案。
但是,如果不更改原始程序,通常无法正常工作。
如果程序使用RPG本机记录级别访问(RLA),则通常需要传递一些告诉程序在何处开始和停止的parm。例如,您可以提交4份副本,每份副本完成工作的25%。
类似的策略可能适用于使用SQL的程序。但是,我怀疑您的程序使用对SQL进行RLA而非处理集。重写程序以使用基于SQL集的处理可能是一个更好的选择。
基于集合的SQL的妙处在于,系统将自动并行运行,并安装Db2 SMP选项(如果适用)。
答案 1 :(得分:0)
这实际上取决于您正在执行哪种处理。如果您只是在读取文件,则正确的索引应该可以使您的处理非常快。可能是导致您出现问题的输出。如果要将大量数据写入文件,则可以暂时在该文件上删除索引,并在完成后重建它们。这通常比一次更新一个记录的索引快得多,甚至可以使基于集合的更新更快。如果不需要承诺控制,则可以选择终止日记,然后在处理完成后重新启动。请注意,这两个选项实际上仅适用于数据加载过程。