ABAP 对RESB表取数性能影响
来源:互联网 发布:godaddy域名注册流程 编辑:程序博客网 时间:2024/04/29 06:20
系统环境:
ECC6 EHP7 IBM-P740 192G RAM IBM-P7+ 32CORE ORACLE 11.2.0.3
症状:
ZPPR0001_NEW生产订单批量报工程序 ,运行于每天凌晨2:30, 运行速度缓慢。
2015-09-14,程序在9:00才运行完毕。
2015-09-15,程序在6:00才运行完毕。
2015-09-16,程序在10:00才运行完毕。
在上班时间进行报工处理,会被其它业务锁定物料,无法处理物料投料,形成大量COGI信息,程序需要性能调优。
原因:
运行ZPPR0001_NEW程序,SE30统计 有一行对RESB表读取的代码,占用了大量的时间:
SELECT COUNT(*) FROM RESB WHERE AUFNR = GOODSMVT_ITEM-ORDERID "生产订单 AND MATNR = GOODSMVT_ITEM-MATERIAL "物料 AND RGEKZ = 'X' "反冲 AND XLOEK = '' "删除
该SQL的作用是在RESB中确认生产订单组件的物料是否允许投料和是否是删除的。
如果满足,该物料会被用于生产订单。后续会把寄售类型转为自有类型投料。
解决办法:
减少该SQL语句的查询时间。
一开始,我只关注该SQL本身是否有优化的可能,进展不大。
后来结合上下文程序,发现前段程序出现的查询条件中有关键字还没有利用起来。
在查询条件中加入关键字后的代码:
SELECT COUNT(*) FROM RESB UP TO 1 ROWS WHERE AUFNR = GOODSMVT_ITEM-ORDERID "生产订单 1100003114 AND MATNR = GOODSMVT_ITEM-MATERIAL "物料 10008733L01 AND RGEKZ = 'X' "反冲 AND XLOEK = '' "删除 AND RSNUM = GOODSMVT_ITEM-RESERV_NO "预留号 刘欣添加 2015-09-15 AND RSPOS = GOODSMVT_ITEM-RES_ITEM . "项目 刘欣添加 2015-09-15
结果:
优化前语句,一个生产订单测试:
优化后语句时间:
传入生产系统后,性能提升太多,6个小时的抓数据时间,缩短为10分钟。
0 0
- ABAP 对RESB表取数性能影响
- ABAP inner join 性能影响
- ToString()对性能的影响
- 视图对性能的影响
- synchronized 对性能的影响
- arraysize 对性能的影响
- ZoneBasedFirewall对系统性能影响
- try catch 对性能影响
- 视图对性能的影响
- try catch 对性能影响
- 文件系统对性能的影响
- static局部变量对性能的影响
- Ajax 对Web性能的影响分析
- Log4J对应用性能的影响
- Log4J对应用性能的影响
- 临时对象对软件性能的影响
- Java JVM设置对性能的影响
- 绑定变量对性能的影响
- Unity 3D引擎:十大最火的插件推荐
- 第十七篇:计算代码行数练习代码
- jdbc连接 mysql 数据库
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法
- 企业CIO
- ABAP 对RESB表取数性能影响
- 多线程vs多进程
- 关于session的生命周期。
- Redis如何处理客户端连接
- logback 常用配置详解(一)
- sql面试题详解
- Android 常用性能测试工具汇总
- 码虫。
- RFC2544性能测试