问题提出:
为公司业务部门开发一个程序,需要在几个百万级物理文件中查找记录并进行费用计算。我将计算程序单独列出来写了个程序,并建立了临时文件进行临时计算结果的存放。
现在遇到的问题是通过测试发现,计算程序的效率很低,重复调用200次左右的时间花费在40秒左右。想请教是在物理文件中索引记录花费了太多的时间还是对临时文件进行i/o操作花费了时间。此外一般行对大文件进行记录查找时有什么可以优化性能的方法么?
回答:
建议用MQT。在导航器下,有一个菜单。
MQT的原理就是用sql语句从各PF表中提取临时数据,用一个名字存放在磁盘上,RPG程序再直接使用这个MQT名作为PF,做最终结果数据的处理。SQLRPGLE使用之前,先用SQL命令做临时数据对各PF表的数据同步。
IBM 400实验室做过同类测试,对5千万级的记录的PF,有没有MQT措施,执行效率差是2000多秒对0.37秒。
阅读(1381) | 评论(0) | 转发(0) |