我是IBM AS400 V5R4的程序员。我创建了两个CL程序,它们都使用CPYTOIMPF格式化AS400 PF列表到字符分隔文件。它们之间的区别在于:一个将文件格式化为qtemp(PGM A),而另一个将文件格式化为qtemp(PGM B)以外的库。
我分别调用了2个程序来格式化大约90个文件,总共大约有800万个记录。两个程序占用的CPU时间超过1300秒,而PGM A的使用时间比PGM B少约5%。我已经尝试了几次,结果相似。
我是否知道为什么CPYTOIMPF到qtemp比复制到其他库更快,虽然只是有点不同?
答案 0 :(得分:2)
QTEMP及其内容不需要在作业的生命周期内存活,因此可以优化不将内容提交到磁盘或不经常这样做,并且可能不需要为对象创建文件系统事务之所以发生变化,因为如果系统出现故障,QTEMP就会被打乱。
此外,QTEMP无需担心安全解决方案和对象控制,因为它对作业是私有的。
这些和类似的东西可以使访问QTEMP所需的工作量少于普通的持久性库。
答案 1 :(得分:1)
如果你在这里没有得到答案。尝试将其发布到MIDRANGE-L。那里有一个由IBM i(或AS / 400)专家组成的大型社区。有人可能会在那里回答。
答案 2 :(得分:1)
QTEMP始终位于iSeries作业的库列表中(具有正常配置的iSeries)。你有没有做过 - 有意思! - 试验一下库列表中的库吗?
我不知道usrlibl的syslibl,curlibl是否具有任何重要性。
答案 3 :(得分:0)
有趣的实验。
在QTEMP或其他库中创建输出文件时,您是否在CRTPF命令中使用SIZE atttribute?我怀疑在QTEMP中扩展文件比在其他库中更快。将SIZE属性中的记录数设置为输入文件中的记录数可能会消除性能差异,因为不再需要扩展文件。
答案 4 :(得分:0)
在QTEMP
中,通常只需使用CRTFILE(*YES)
差异可能只是在重新创建文件之前删除文件的时间,或者清除文件的时间更长:MBROPT(*REPLACE)