FavoriteLoading
1

[工具]SAT性能分析使用教程

[隐藏]

1, SAT简介

SAT是SAP提供的用来替代SE30的程序性能优化分析工具( runtime analysis),功能比SE30更加强大,使用起来也很方便。那么如何使用这个工具呢?下面讲解一下SAT中每个部分的功能和使用方法。

SAT屏幕:与SE30类似。

分块说明如下:

2, SAT变式

Settings:用来设置SAT运行属性的变式,默认为default,可以参照创建一个符合自己需求的变式。

在Duration and Type tab页中,能设置文件最大容量和最大SAT运行时间等信息

Aggregation:

None选项:选择这个,只会把程序中的调用显示出来,一般用None就够用了。

Per Call Position:系统调用也会显示在hit list中。

Options:

Explicit Switching On and Off of Measurement:勾上这个选项,意味着:

  1. SAT可以通过程序中的SET RUN TIME ANALYZER {ON|OFF} 启动和结束
  2. 通过命令栏中的“/ron” (trace on)和 “/roff ” (trace off)控制
  3. 通过菜单System -> Utilities -> Runtime Analysis -> Switch On / Switch Off. 控制

在Statement中,可以选择需要跟踪的abap语句,有时候不需要跟踪所有的内容,比如只跟踪SQL。

在Program part中设置SAT跟踪的范围。

比如在limitation of the measurement 中选择最后一个选项-limitation on program components,

然后需要跟踪的function ztest_function,这时,SAT只会跟踪这个function的性能。

程序类型(Program type):

Procedure type:

如果选择了limitation according to definition in the hotspot monitor这选项,SAT会跟踪表HOTSPOT_DEF中的数据

3, 指定SAT监控入口

In Dialog:指定需要监控的程序种类,是TCode,程序,还是function。

4, 指定工作进程(work process)

In parallel session,

可以利用这个功能来跟踪后台job(background job),举例说明如下:

创建一个程序作为测试跟踪程序,代码如下:

SE38中后台执行,

后台运行后,进入SAT,点击switch on/off按钮,就能看到ZTEST_SAT在某个work process上运行,然后启动SAT,看到绿灯出现表示SAT正在收集后台job的运行数据,当终止SAT后,hit list会自动跳出(勾上evaluate immidiately)。

下图就是后台job程序 ZTEST_SAT的hit list。

5, 设置后台监控SAT

schedule一个SAT监控如下,意思就是在15.03.2017 15:49:24之前监控tcode SE38的性能,最多监控3次。

chedule measurement中的各个字段含义如下:

User: 所要记录运行时数据的用户名,既执行程序的用户名。
Client: 执行程序所在的客户端。
External Session: 在哪个External Session 中执行的程序被记录数据。1表示只在1号进程执行的程序被记录数据,而其他的进程的不记录。0表示所有的都记录。
Process Type: 程序的类型,Dialog,Update,RFC等。


Object Type: Transaction, Report, Function等,与下面的对象配合,确定相应的启动方式。
Object Name: tcode, 程序名, 功能函数名。
Max. No. of Sched. Measurements: 在统计时间有效期内,最多记录的性能跟踪次数
Expiration Date ,Run time:统计时间有效期。

6, 内表命名规则

选项:determine names of internal table

这个checkbox的F1帮助如下,意思就是在老的SE30中,只有命名为IT开始的内表才会被SE30识别为内表,

勾上这个checkbox后,就不受IT这个前缀限制了,只要是内表都会被SAT识别。

7, 查看SAT结果文件

选择Evaluate tab页,

下图是SAT的跟踪结果屏幕:

[Desktop1]TAB页 

左面是profile tool窗口,右边是hit list屏幕(和SE30的相类似,这里就不讲解了,具体可以参照-->[工具]SE30使用实例教程)。点击左面的节点,比如点击function module,右边的hit list中就会只显示function相关的hit list。

[Hit List]TAB页

同SE30类似,列出所有的跟踪结果,双击某行能跳转到源代码处。

[DB tables]TAB页

展现各个SQL的运行时间。

[Profl.]TAB页

Profile tab页能将SAT的跟踪结果多维度的展现(function,subroutines,rfc,SQl,screen,甚至是底层的SQL操作-DB open,DB fetch。。。)。当点击对应的节点,对应的hit lit就展现在屏幕下方。

[Times]TAB页

按照abap执行的语句(Statement)和触发的事件(EVENT)的顺序展现跟踪结果。

以上。