1, SE30简介
在对abap程序进行程序优化时,会使用的SE30来分析代码,得到什么地方最耗性能,进而有针对性的优化。
现在来说,SE30已经是个过时的abap运行时间工具了,已经慢慢被SAT替代,在SAP系统内输入SE30,会有如下提示:
点击Old SE30按钮进入SE30工具,SE30屏幕上分了下图中红框内的若干功能区,下面一一介绍。
2, In dialog
在In dialog中,可以选择需要跟踪的程序类别/方式,是通过Tcode,程序名字还是对function进行trace。
本例子选择通过程序名字进行跟踪,在上图中输入YME_OTD_REPORT之后,点击 Excute按钮,进入程序的选择画面,
输入好选择条件,运行,这是个ALV报表程序,程序运行结束后,点击back按钮回到SE30屏幕,
状态栏中提示分析结束。
3, Performance data file
这里保存了程序性能的分析结果,可以点击Evaluate按钮进入到overveiw界面(当然也可以点击other file查看其它分析结果,点击delete删除分析结果),
在overview屏幕上可以看到程序执行过程中资源消耗的地方,红色表示性能低下,需要优化。
1)ABAP:是指消耗在程序中abap语句上的资源,比如,loop用的是否合理,有没有嵌套用,或者是read table时是否加了binary search等等。
2)Database:主要消耗在SQL语句上的资源,比如,loop中最好不要用select语句,select时没有里利用到index等
3)System:系统方面,通常不用考虑。
点击左上角的按钮进入到hit list屏幕,
在hit list屏幕能看到更详细的信息,
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 代码处,如下:
4, In parallel session
用来指定SE30跟踪时的work process(工作进程),一般来说也用不到。
点击按钮switch on进入work process屏幕,光标选中work process行后,点击激活按钮,激活后有黄灯的图标显示。
激活这个work process做什么用。。。其实我也不是很清楚。。。。这个功能好在在SE30中不是很好用,在SAT是好用的。
在执行了一次Measurement(也就是SE30的性能跟踪,目前看只是针对schedule的性能跟踪)结束后,在 work process 清单中会列出完成的结果和 Measurement文件的路径,指示灯则为绿色交通灯。
可以根据上图中的file name在other file按钮中查找到具体的跟踪日志
5, Schedule
点击for user/service按钮进入schedule屏幕,可以创建一个schedule measurement。在设定了相关跟踪参数和计划日期后,凡在该日期内,只要相关程序/tcode/function/一运行,都会记录在SE30中,也就是不用再通过SE30启动跟踪,方便收集程序运行时的数据。
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与程序的不同。
变式的设置界面。其中有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中查看。
SE30跟踪后,在Hit list中发现只有form FRM_GET_DATA内的代码运行性能信息。
2) Statements TAB页
可以选择需要统计的ABAP语句,比如:SQL语句,各种程序模块(form,event,method...),screen等等。这些可以使跟踪更有针对性。
3) Duration/Type TAB页
主要是对SE30运行时间的长短,跟踪结果保存文件大小进行一下设置。
以上。
发表评论