SAP系统提供了许多性能调优的工具,重点介绍下最常用几种SM50, ST05, SAT等工具:
1.工具概况
1.1 SM50 / SM66 - 工作进程监视器
通过这两个T-code, 可以查看当前SAP AS实例上面的工作进程,当某一工作进程长时间处于running的状态时,可以直接跳转到相应的程序位置进行查看和分析。
1.2 ST05 - 性能追踪
ST05是最常见的一个performance trance的工具,可以进行SQL、Buffer、Enqueue、RFC 、HTTP等多种类型的追踪, 通常我们使用ST05踪程序运行过程中的DB访问情况。
1.3 SAT - 代码分析工具
SAT是SE30的新版本,是非常好用的一种ABAP性能分析工具,可以按照不同的类型统计程序的运行状况,这也是常用的一个性能分析工具tcode。
1.3 SCI - 代码检查器
SCI是SAP Code Inspector的缩写,主要用于静态检查,包括性能、安全性、语法等等,Code Inspector默认集成在ATC(ABAP Test Cockpit)和SE09(传输释放)等过程中。用户可以通过定义自己的variant来实现自己特定的检查规则。
1.4 STAD (STATS) - 性能监控器
这个事物代码是用于系统性能监控(Performance Monior),用于查看系统在特定时间段的性能情况,资源使用和消耗情况。老的事物代码是STAD,新版的事物代码是STATS。
1.5 ST12 - 单个事物代码分析
ST12 (Single transaction analysis)更像一个wrapper的事物代码,其核心是对ST05, STAD, SAT等性能分析工具的集成,其使用方式和ST05类似,也即要有一个activate和deactivate的步骤。ST12也是常用的性能分析工具。
2. 工具的使用方法
2.1 ST05 性能追踪
使用ST05通常有三个步骤,即 Activate Trace >> Deactivate Trace >> Display Trace .
因此在使用ST05打开Trace后,要避免无关的操作,仅执行相关的目标程序。这样在Deactivate Trace后,看到的Trace结果更加的干净、没有干扰。
在Display trace的overview页面,其显示了程序的整个执行过程,我们可以通过查看Structure-Identical Statement来查看SQL的具体执行情况,在此可以找到最耗时的执行语句,同时双击可以进入相关的源代码位置。
2.2 SAT 代码分析工具
在SAT的主界面,输入要执行的程序,然后运行 -
运行完毕后,SAT返回相应的分析结果。在分析页面,我们可以看到不同部分执行时间所占的百分比,进而可以进一步分析具体的原因。
在SAT的 Hit List 页面可以直接看到,各部分耗费时间的排行。通常情况下,在程序开发完毕后,都要使用SAT来分析下程序各部分的执行情况,对于耗时较高的位置,进行性能优化。
2.3 SM50 / SM66 工作进程监视器
SM50 / SM66工作进程监视器 为了避免其他无关进程的干扰,通常在使用SM50 / SM66时,我们首先会过滤出与自己相关的process.
然后,在SM50中,找到并选中相关的目标程序的process,通过Administration >> Program >> Debugging即可跳转到相关的程序位置。
通过SM50中的debug跳转找到的位置,说明SAP AS 上的进程在此位置耗费了较长的处理时间,因而通常这个位置就是需要优化的程序位置。
2.4 SCI - 代码检查器
SCI已经集成在程序检查里:SE38程序左上角菜单选择Program->Check->Code Inspector如下:
这里会执行系统default默认的静态检查规则,并给出结果:
如果需要自定义检查规则,可以直接使用SCI事物代码,自定义Check Variant, Object Set和Inspection:
2.5 STAD (STATS) - 性能监控器
STAD是SAP系统的性能监控器,记录着系统在某一特定时间段的运行情况。
可以使用选择条件(用户,事务码,程序等)来限定要查看的范围。
结果会返回特定一个时间段,系统的使用情况。进而可以分析影响性能的主要原因。
针对于某一条特定的记录,双击进去,可以查看其各个维度对应的详细运行时间明细数据。
2.6 ST12 - 单个事物代码分析
在启动ST12时,可以通过选择屏幕,设置trace的相关参数。分析结束后,通过trace analysis来查看结果。
自定义Comment,username等参数,程序执行前,点开始手机Trace,程序执行后,点End trace&collect结束收集。
选中Trace分析运行结果带回,会产生对应分析运行结果Trace and edit comment for collection
点击Full screen还可以进一步参数选择。
可查看捕捉到的Trace明细运行结果: