免费注册 查看新帖 |

Chinaunix

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

关于RPGLE和SQLRPGLE的读表速度 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-28 11:21 |只看该作者 |倒序浏览
要从一个表中读出42万条数据做处理,我用了两种方法测试速度。
1--在RPGLE中用READ语句逐条读出
2--在SQLRPGLE中用SQL语句读出
为什么SQLRPGLE的处理速度比RPGLE还要慢呢?(个人感觉SQLRPGLE只读一次表,应该能快一点)

论坛徽章:
0
2 [报告]
发表于 2007-08-28 12:42 |只看该作者
SQLRPGLE用做查询和分组统计的时候挺方便
但SQLRPGLE 效率相比 RPGLE 来说很低  而且不好DEBUG 数据量大情况下甚用

论坛徽章:
0
3 [报告]
发表于 2007-08-28 15:37 |只看该作者
db2与os/400完美结合,RPG读取db2的方式是直接读取技术,所以速度是最快的。使用RPG是用复杂性换效率。

论坛徽章:
0
4 [报告]
发表于 2007-08-28 15:47 |只看该作者
2楼,3楼的意思是说,大数据量的时候,RPGLE一定比SQLRPGLE快,是吧?
可能以前做过WEB,我总感觉读一遍表比反复读表要快,RPG上可能不是这样:wink:

论坛徽章:
0
5 [报告]
发表于 2007-08-28 16:02 |只看该作者
因为读数据库的方式不同,所以即使只是读一条记录,RPGLE也要比SQLRPGLE快得多,虽然SQLRPGLE不用循环,但是它省出来的时间还是不足以弥补效率上的差距。

论坛徽章:
0
6 [报告]
发表于 2007-08-28 20:17 |只看该作者
你读的数据库有逻辑文件吧,可能是这个原因

论坛徽章:
0
7 [报告]
发表于 2007-08-29 09:06 |只看该作者
跟逻辑文件没太大关系,SQL也可以建立视图啊。两者最大的差异是对DB2/400的数据存取技术不同。

论坛徽章:
0
8 [报告]
发表于 2007-08-29 10:31 |只看该作者
42万条记录,还是要逐一处理吧?
为什么说sql只用读一次表呢?其实还是要fetch next 啊。好像是读一次表就得到了一个结果集,其实这个结果集只是很小的一片存储区,
当fetch next 超过了这个存储区的范围的时候,还是要去和数据库通信的。

论坛徽章:
0
9 [报告]
发表于 2007-08-29 10:34 |只看该作者
我觉得如果仅仅是
update ... set ... where ...
和普通的rpg程序比,说不定sql要快一些,因为这条语句只用和数据库通信一次。而rpg要做循环。

论坛徽章:
0
10 [报告]
发表于 2007-08-29 10:39 |只看该作者
SQL具有规范性、可维护性、可读性等等优点,但是与RPGIV相比,目前在AS/400对数据库某些操作效率仍然低于RPGIV,这是由于RPGIV采用的是数据库Direct I/O技术。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP