免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2905 | 回复: 3
打印 上一主题 下一主题

关于应用程序中数据库性能改善(和大家一起分享讨论学习) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-24 11:23 |只看该作者 |倒序浏览
有一部分内容参考一些贴子和自己收集相关资料这里收集在一起和大家一起分享一下:
这里抛砖引玉,希望高手指点。
1) 在RPGLE程序当中提高数据的读写速度有如下几种方法:
  首先保证文件的打开是OPEN (*SHare)
  其次在F表使用BLOCK(*YES)关键字,这是要求程序外描述文件只能拥有一个记录格式。
  默认的情况下输出(*YES) 读入是(*NO) 并且SEQONLY(*YES)不能随机读取函数存在如reade
顺序读写可以提高5-10的速度。
2) 将文件或是目标调入到内存当中去,通过命令SETOBJACC可以使目标常驻内存池。
  如果使用OVRDBF要在RPG程序外调用,再调用该RPG程序。
3)数据库事务控制,2000条记录以上不落实控制就会降低性能。
4)如果输入记录互相依赖,则可将它们作为事务处理。批处理作业可以锁定最多 500 000 000  条记录。可以使用“查询选项文件”(QAQQINI)减少此限制。使用更改查询属性(CHGQRYA)命令的 QRYOPTLIB 参数来指定要使用的作业的“查询选项文件”。在“查询选项文件”中使用 COMMITMENT_CONTROL_LOCK_LEVEL 值作为作业的锁定限制。
5) SQL 程序在被RPGLE程序调用时CLOSQLCSR 参数选择*ENDMOD *ENDACTGRP对于游标的释放都有影响。
6) ALWCPYDTA(*OPTIMIZE) 的预编译参数会提高数据库操作性能。
7) 最小化记录锁定的典型方法是释放记录锁定。(如果指定了 LCKLVL(*ALL),则此方法不适用)。例如,单个文件维护应用程序通常执行下列任务:
批处理作业的通信性能注意事项

系统上运行的每一项工作称为一个作业。每个作业都是单个可识别的处理操作序列,表示对系统的一次使用。执行的作业的基本类型有交互式作业、批处理作业、假脱机作业、自动启动作业和预启动作业。

批处理作业是处理操作的预定义组,在提交给系统执行时,用户和系统之间只需要很少交互作用或不需要交互作用。可调整批处理作业以优化性能。

要优化批处理作业以进行通信,考虑下列事项:

    * 将应用程序分为几段,并让多个批处理线程(作业)并发操作。
    * 减少打开和关闭操作、输入和输出操作的数目。
    * 如果可用的主存储器相当大,则考虑使用“设置对象访问”(SETOBJACC)命令。如果有足够的存储器可用的话,此命令会将完整的数据库文件、数据库索引或程序预装入指定的主存储器池中。其目标是通过消除磁盘读/写操作来提高性能。
    * 在使用通信线路时,尽量通过执行较少(可能会较大)的应用程序发送和接收来限制通信输入和输出操作的数目。
    * 将应用程序中的数据分块。尽量将应用程序和经常访问的数据放置在同一系统

论坛徽章:
0
2 [报告]
发表于 2007-07-24 14:56 |只看该作者
ding

论坛徽章:
0
3 [报告]
发表于 2007-07-25 20:47 |只看该作者
有些看不懂! 但还是要感谢楼主

论坛徽章:
0
4 [报告]
发表于 2007-07-25 21:10 |只看该作者
好多看不懂。
还是谢谢楼主,辛苦了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP