1、SETOBJACC命令,可以使文件常驻内存,在运行程序前,先使用一下SETOBJACC命令,可以减少磁盘操作,提高效率;
2、在RPG程序中,定义文件时,使用BLOCK关键字,同时调用程序之前使用OVRDBF命令,也可以顺序读取文件,减少磁盘操作,提高效率。
那么,这两者之间有何异同?在实际运用时,要注意些什么问题?如果同时使用这两个命令,可能会有什么问题?
请各位DX指点,谢谢先。
riancy1106 回复于:2005-03-10 17:47:54 |
关注ing |
qingzhou 回复于:2005-03-11 21:50:57 |
[b:e9c898c66f]Please reference nether article , maybe it can help you .[/b:e9c898c66f]
<如果有一公共程序频繁被调用,怎样才提高效率?> [url]http://www.chinaunix.net/jh/10/413779.html[/url] |
海东青 回复于:2005-03-12 20:52:06 |
对于唯一关键字的数据文件来说,BLOCK会在运行时被忽略的 |
胖有型 回复于:2005-03-13 15:08:40 |
TO qingzhou斑竹:首先,为qingzhou刚满月不久的小女问好。那篇大作之前已拜读过,就是因为看了之后,想比较一下SETOBJACC与BLOCK命令。因为以前我只会用BLOCK,还是看了blogliou的贴子后才尝试,效果的确明显。但不知道SETOBJACC和BLOCK之间的异同。比如它们的效率啊,对系统资源的占用,利用啊,两者会不会有什么冲突啊之类的问题。
TO海东青:“对于唯一关键字的数据文件来说,BLOCK会在运行时被忽略”,原来是这样,谢谢! |
yoyoage 回复于:2005-03-14 18:32:56 |
setobjacc & block 都是通过增加一次性读入的数据到内存池,减少磁盘I/o,达到改善性能的目的的。
SETOBJACC只是在对文件进行READ/UPDATE操作的时候才会有效果。对write操作是没有改善的。Block也是对write操作不能改善性能。 Block一般是用在某一次对文件的操作时用到。比如处理一个报表程序,一般需要依次读入每一笔数据。这样使用block能大大节省i/o时间。 而当一个数据文件被多个程序读入或者一个程序被多次调用的时候,使用setobjacc。比如subfile中读入的数据文件,或者一些公共数据文档,或者频繁调用的某个程序。 |
hanyu 回复于:2005-03-15 08:28:54 |
yoyoage 好利害呀! |
riancy1106 回复于:2005-03-15 18:05:59 |
知道了 |
yoyoage 回复于:2005-03-15 19:24:11 |
我在工作中其实也没用过,自己做过测试。
其实很多东西自己动手试试就知道了,呵呵 |
海东青 回复于:2005-03-15 20:19:20 |
[quote:f6935b8091="yoyoage"]Block也是对write操作不能..........[/quote:f6935b8091]
这个,block可以延迟写入的啊 |
hanyu 回复于:2005-03-15 21:21:35 |
block 的目的,是开启数据库预读和异步写,当如果输出文件有唯一键字时,必须同步写,BLOCK实际被忽略。当输出文件有记日志,实际上由于日志项是同步写的,性能还是提升不大。实际上block对只读,无日志、无唯一键字只输出比较适用。 |
胖有型 回复于:2005-03-16 10:23:14 |
大家的发言真精彩 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/