SAP ABAP 运行时间分析工具 TCODE SAT / SE30

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

现在来说,SE30已经是个过时的abap运行时间工具了,已经慢慢被SAT替代,在SAP系统内输入SE30,会有如下提示:
在这里插入图片描述
点击Old SE30按钮进入SE30工具,SE30屏幕上分了下图中红框内的若干功能区,下面一一介绍。
在这里插入图片描述
2.在对话中
在In dialog中,可以选择需要跟踪的程序类别/方式,是通过Tcode,程序名字还是对function进行trace。
在这里插入图片描述
本例子选择通过程序名字进行跟踪,在上图中输入事务码 ZPP035 之后,点击 执行 按钮,进入程序的选择画面,
在这里插入图片描述

输入好选择条件,运行,这是个ALV报表程序,程序运行结束后,点击back按钮回到SE30屏幕,
在这里插入图片描述
状态栏中提示分析结束。
在这里插入图片描述
3, 性能数据文件
这里保存了程序性能的分析结果,可以点击 评估 按钮进入到overveiw界面(当然也可以点击 其他文件 查看其它分析结果,点击 删除 删除分析结果),
在这里插入图片描述
在overview屏幕上可以看到程序执行过程中资源消耗的地方,红色表示性能低下,需要优化。

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

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

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

点击左上角的按钮进入到hit list屏幕,
在这里插入图片描述

在hit list屏幕能看到更详细的信息,
在这里插入图片描述
hit list中能查到如下信息:

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

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

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

在这里插入图片描述
在这里插入图片描述
---------------- 下面图片部分来自 http://www.baidusap.com/abap/3565 ----------------------------
4, 在并行会话中
一般来说用不到
在这里插入图片描述
点击按钮switch on进入work process屏幕,光标选中work process行后,点击激活按钮,激活后有黄灯的图标显示。

激活这个work process做什么用。。。其实我也不是很清楚。。。。这个功能好在在SE30中不是很好用,在SAT是好用的。
在这里插入图片描述
在执行了一次Measurement(也就是SE30的性能跟踪,目前看只是针对schedule的性能跟踪)结束后,在 work process 清单中会列出完成的结果和 Measurement文件的路径,指示灯则为绿色交通灯。
(懒得等绿灯了)
在这里插入图片描述
可以根据上图中的file name在other file按钮中查找到具体的跟踪日志
在这里插入图片描述

在这里插入图片描述

5.调度
在这里插入图片描述
点击for user/service按钮进入schedule屏幕,可以创建一个schedule measurement。在设定了相关跟踪参数和计划日期后,凡在该日期内,只要相关程序/tcode/function/一运行,都会记录在SE30中,也就是不用再通过SE30启动跟踪,方便收集程序运行时的数据。
(这里借用 百度SAP 的一张图)
在这里插入图片描述
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中的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)

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

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

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

SE30跟踪后,在Hit list中发现只有form FRM_GET_DATA内的代码运行性能信息。
(再借大佬图0.0)
在这里插入图片描述
2) Statements TAB页

可以选择需要统计的ABAP语句,比如:SQL语句,各种程序模块(form,event,method…),screen等等。这些可以使跟踪更有针对性。
在这里插入图片描述
3) Duration/Type TAB页

主要是对SE30运行时间的长短,跟踪结果保存文件大小进行一下设置。
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值