注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

XINBO'S SAP BLOG

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经

 
 
 

日志

 
 

ABAP/4的优化   

2009-05-18 12:58:50|  分类: ABAP优化 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.首先是找出有问题的程序:
一般查询程序执行时间只要超过100秒(这是观察SAP标准程序的效率值)以上这些程序就是要Tune的可以透过T-CODE:SM50 或 T-CODE:SM37 去找资料,分析在线或是背景执行有哪些ABAP 很慢

2.程序效能分析
T-CODE:SE30 程序执行时间分析,找出程序慢的部份,执行完程序可以区分三个阶段的执行时间:
ABAP、Database、System,这三个部份对效能的优先级为Database -> System -> ABAP
要依序排除程序这些部份的问题。一般建议上线前Basis 一定要先审核这个数据是OK才让该ABAP
上线,否则一上线会拖垮整个主机效能反而更麻烦。

3.Database 效能分析
一般来说自行开发的程序大部份对数据库的有效率存去都会忽略,这部份可以透过检查索引、调整程
式语法改善,在SE30分析程序可以看出哪些Table花费的成本最高,针对程序中这些SQL语法进行检查:
首先要检查索引,程序中的Where字段在Table index是有满足,如果没有Index,就要评估该报表
执行频率,如果很高就要建一个索引(T-CODE:SE11)给它用,否则就应排背景于非上班时间执行。

可以透过 ST05 去追踪SQL Performance,如此可以看到程序中SQL使用的,有时Table明明有可以
符合 SQL 使用的Index可是程序还是不依该Index Query Data,这是系统判断错误,这时可以使用
数据库特有的语法指定Index执行。

Oracle 指定Index 的范例语法为:
SELECT carrid connid cityfrom
FROM spfli INTO (xcarrid, xconnid, xcityfrom)
WHERE carrid = 'LH ' AND cityfrom = 'FRANKFURT'
%_HINTS ORACLE 'INDEX("SPFLI" "SPFLI~001")'.
             ^^^^^ ^^^^^^^^^
             Table Index ID

4.系统资源的控制
当DB的问题处理完成后,就要注意程序对系统资源使用的控制了,ABAP中不能无限制的使用系统内存,有些大量耗用内存的程序是可以透过程序技巧调整的,还有就是用完了要清。

5.用OCCURS NUM_RECS声明内表,NUM_RECS参数是你估计(或希望)使用到的数据条数。如果使用到的记录条数超出NUM_RECS参数的限制,数据将被存放在硬盘上的交换空间(不是内存)。

  评论这张
 
阅读(466)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017