FavoriteLoading
1

[工具]SE30使用实例教程

[隐藏]

1, SE30简介

在对abap程序进行程序优化时,会使用的SE30来分析代码,得到什么地方最耗性能,进而有针对性的优化。

现在来说,SE30已经是个过时的abap运行时间工具了,已经慢慢被SAT替代,在SAP系统内输入SE30,会有如下提示:
2017-03-07_16-21-46
点击Old SE30按钮进入SE30工具,SE30屏幕上分了下图中红框内的若干功能区,下面一一介绍。

2017-03-07_16-27-42

2, In dialog

在In dialog中,可以选择需要跟踪的程序类别/方式,是通过Tcode,程序名字还是对function进行trace。

2017-03-09_16-22-35

本例子选择通过程序名字进行跟踪,在上图中输入YME_OTD_REPORT之后,点击 Excute按钮,进入程序的选择画面,

2017-03-09_16-26-32

输入好选择条件,运行,这是个ALV报表程序,程序运行结束后,点击back按钮回到SE30屏幕,

2017-03-09_16-27-46

状态栏中提示分析结束。

2017-03-09_16-29-41

3, Performance data file

这里保存了程序性能的分析结果,可以点击Evaluate按钮进入到overveiw界面(当然也可以点击other file查看其它分析结果,点击delete删除分析结果),

2017-03-09_16-32-52

在overview屏幕上可以看到程序执行过程中资源消耗的地方,红色表示性能低下,需要优化。

1)ABAP:是指消耗在程序中abap语句上的资源,比如,loop用的是否合理,有没有嵌套用,或者是read table时是否加了binary search等等。

2)Database:主要消耗在SQL语句上的资源,比如,loop中最好不要用select语句,select时没有里利用到index等

3)System:系统方面,通常不用考虑。

点击左上角的按钮进入到hit list屏幕,

2017-03-09_16-34-12

在hit list屏幕能看到更详细的信息,

2017-03-09_16-45-32

hit list中能查到如下信息:

Number: 被调用的次数。
Gross Time : 该语句,子程序以及被其调用的子程序,语句所消耗的时间。(以微秒记)
=: 如果前后列分别为Gross Time 与 Net Time 的话,该列会显示为“=”号。
Net time:该语句,子程序不包括被其调用的子程序,语句的消耗时间。(以微秒记)
Gross(%):显示为 Gross Time 在总时间中占用的时间比。
Net (%):显示为 Net time 在总的时间中占用的时间比。
Call:语句或者子程序。
program name :语句或者子程序所属的程序,类名。
Type:系统 DM 空白 分别表示ABAP运行时环境,数据库读写,ABAP代码所 消耗的时间。
Display Filter Group :显示过滤的组。

占用时间较长的地方就是性能比较低下的,需要优化。

点击display source code按钮还能直接跳转到具体的abap 代码处,如下:

2017-03-09_16-49-55

4, In parallel session

用来指定SE30跟踪时的work process(工作进程),一般来说也用不到。

2017-03-09_17-05-30

点击按钮switch on进入work process屏幕,光标选中work process行后,点击激活按钮,激活后有黄灯的图标显示。

激活这个work process做什么用。。。其实我也不是很清楚。。。。这个功能好在在SE30中不是很好用,在SAT是好用的。

2017-03-09_17-13-48

在执行了一次Measurement(也就是SE30的性能跟踪,目前看只是针对schedule的性能跟踪)结束后,在 work process 清单中会列出完成的结果和 Measurement文件的路径,指示灯则为绿色交通灯。

2017-03-10_13-25-04

可以根据上图中的file name在other file按钮中查找到具体的跟踪日志

2017-03-10_13-40-38

2017-03-10_13-41-23

5, Schedule

2017-03-10_13-46-16

点击for user/service按钮进入schedule屏幕,可以创建一个schedule measurement。在设定了相关跟踪参数和计划日期后,凡在该日期内,只要相关程序/tcode/function/一运行,都会记录在SE30中,也就是不用再通过SE30启动跟踪,方便收集程序运行时的数据。

2017-03-10_13-47-28

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

User: 所要记录运行时数据的用户名,既执行程序的用户名。
Client: 执行程序所在的客户端。
External Session: 在哪个External Session 中执行的程序被记录数据。1表示只在1号进程执行的程序被记录数据,而其他的进程的不记录。0表示所有的都记录。
Process Category: 程序的类型,Dialog,Update,RFC等。
Object Type: Transaction, Report, Function等,与下面的对象配合,确定相应的启动方式。
Object Name: tcode, 程序名, 功能函数名。
Max. No. of Sched. Measurements: 在统计时间有效期内,最多记录的性能跟踪次数
Expiration Date ,Expiration Time:统计时间有效期。

以上图为例,就是说,在2017.03.11  07:47:02有效期之前,只要程序YME_OTD_REPORT被运行,它的性能数据就会被记录在SE30中,最多记录10次。

6, Measurement Restrictions

Measurement Restrictions中的variant就是运行SE30时的一些设置,注意,这个variant与程序的不同。

2017-03-10_14-00-34

变式的设置界面。其中有3个tabstrip 分别是Program(parts),Statements  Duration/Type 。

1)  Program(parts) TAB页

这个TAB的功能是设置SE30具体跟踪那些子程序,功能函数,类的方法的运行时数据。具体如下图,就是只跟踪YME_OTD_REPORT程序的form “FRM_GET_DATA”,注意不能勾上Particular units checkbox。

Particular units 勾上时,仅在程序中SET RUN TIME ANALYZER ON/OFF之间的代码才会被trace。

Within and below: 即某一子程序或者由它调用的所有子程序。

RFC, Update:RFC 以及 update 调用的程序也纳入数据记录范围,结果可以在SE30中查看。

2017-03-10_14-22-22

SE30跟踪后,在Hit list中发现只有form FRM_GET_DATA内的代码运行性能信息。

2017-03-10_14-20-21

2) Statements TAB页

可以选择需要统计的ABAP语句,比如:SQL语句,各种程序模块(form,event,method...),screen等等。这些可以使跟踪更有针对性。

2017-03-10_14-26-32

3) Duration/Type TAB页

主要是对SE30运行时间的长短,跟踪结果保存文件大小进行一下设置。

2017-03-10_14-29-40

以上。