sap abap性能优化

sap abap性能优化

ID:22024856

大小:1.61 MB

页数:27页

时间:2018-10-21

sap abap性能优化_第1页
sap abap性能优化_第2页
sap abap性能优化_第3页
sap abap性能优化_第4页
sap abap性能优化_第5页
资源描述:

《sap abap性能优化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ABAP程序性能优化目录一.前言二.程序性能优化的重点三.怎样降低CPU负载四.怎样降低DB负载五.怎样降低程序内存使用六.怎样检查程序性能第2页本文提供一些常用的方法,用以提高ABAP程序运行速度、降低系统荷载、节省内存开销。但这些方法不是孤立的,我们的最终的目的是在三者之间达到一种平衡。一.前言第3页第4页二.程序性能效率优化的重点降低CPU负载(减少循环次数)降低数据库负载(减少IO操作)内存使用的优化(减少内表大小)SAP系统三层架构第5页三.怎样降低CPU负载侧重于程序语句处理逻辑:减少循环次数1

2、.使用WHERE条件减少循环次数;2.尽量避免使用MOVE-CORRESPONDING和INTOCORRESPONDINGFIELDSOF;3.使用SORTEDTABLE和HASHEDTABLE表类型;4.使用BINARY SEARCH二分查找算法;5.使用较高效的DELETEADJACENTDUPLICATESFROM删除内表邻近重复记录;6.使用较高效的COLLECT语句对记录进行聚集加总;7.嵌套loop语句,可以用先read在loopatfrom。减低CPU负载-1使用WHERE条件减少循环次数.减

3、少循环次数可以减少CPU操作次数,减少操作时间LOOPAT…WHERE…SELECTION-OPTIONS:s_vbelnFORvbak-vbeln.LOOPATitab.IFitab-vbelnINs_vbeln.……ENDIF.ENDLOOP.SELECTION-OPTIONS:s_vbelnFORvbak-vbeln.LOOPATitabWHEREvbelnINs_vbeln.……ENDLOOP.不推荐推荐第6页降低CPU负载-2尽量避免使用MOVE-CORRESPONDING和INTOC

4、ORRESPONDINGFIELDSOF.CORRESPONDING语句在系统内部存在隐式操作:1,检查元素名称匹配;2,检查元素类型匹配;3,元素类型转换;SELECT * INTO CORRESPONDINGFIELDS OF TABLEitabFROMvbakWHEREvbeln=p_vbeln.LOOPATitab1INTOwa.MOVE-CORRESPONDINGwato itab2.APPENDitab2.ENDLOOP.SELECTvbelnposnrINTO TABLEitabFROMvba

5、kWHEREvbeln=p_vbeln.Itab2=itab1.SELECTvbelnasfld1posnrasfld2INTO TABLEitabFROMvbakWHEREvbeln=p_vbeln.LOOPATitab1INTOwa.Itab2-fld1=wa-matnr.Itab2-fld2=wa-meinsAPPENDitab2.ENDLOOP.不推荐推荐推荐第7页降低CPU负载-3使用SORTEDTABLE和HASHEDTABLE表类型.第8页降低CPU负载-4使用BINARY SEARCH二分查

6、找算法.一般线性查找的缺点就是耗时,而二分查找比线性查找更高效.READTABLEitab2WITHKEYvbeln=Itab1-vbelnANDposnr=itab1-posnr.时间复杂度为O(n)阶.SORTTABLEitab2BYvbelnposnr.READTABLEitab2WITHKEYvbeln=Itab1-vbelnANDposnr=itab1-posnrBINARYSEARCH.时间复杂度为O(logn)阶。注意:使用BINARYSEARCH前必须对内表进行按索引排序.不推荐推荐第9页降

7、低CPU负载-5使用较高效的DELETEADJACENTDUPLICATESFROM删除内表邻近重复记录.注意:使用前必须要对内表先进按索引排序SORTITABBYXXXX.第10页降低CPU负载-6使用较高效的COLLECT语句对记录进行聚集加总.注意:COLLECT语句的效率只体现在当你使用的是顺序表和哈希表的时候,或者内表经过有效排序之后。否则当内表数据过多时,检索时间会很长,一般不推荐使用在记录条数非常多的标准表。第11页降低CPU负载-7嵌套loop语句,可以用先read在loopat…froms

8、y-tabix方法处理,可以有效减少循环次数。第12页第13页四.怎样降低数据库负载侧重于SQL语句逻辑:减少IO操作1.避免使用SELECT…ENDSELECT语句;2.避免使用SELECT*;3.使用FORALLENTRIESIN语句联接数据表和内表;4.使用索引提高查询效率;5.避免使用SQL的ORDERBY语句,SORT语句会更高效;6.使用SQL聚合函数MAX,MIN,COUNT,AVG,SUM。降低数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。