SAP 使用ST05跟踪方法
SAP R/3 提供标准ABAP SQL 跟踪工具。使用T-Co
在TraceModes区域中选择需要在SAPR/3Server上trace的范围:
SQLTrace:追踪该APServer上已过滤的SQL语句。
EnqueueTrace:追踪EnqueueServer上的队列。
RFCTrace:追踪该APServer上RFC行为。
BufferTrace:追踪该APServer上Buffer中的行为。
这里若要追踪SQL则只要选中SQLTrace。然后在TraceRequests区域中点选TraceonwithFilter进行输出过滤:
这里仅追踪SBA账号对于MB03所有的SQL操作。也可以填入程序名称甚至APServer上的进程代号来追踪。还可以在Tablename区域选定包含/排除的表名。点击对钩之后即启动追踪。
在需要查看追踪结果时需要先停止追踪(Traceoff)然后再点击Displaytrace显示如下:
需要重新对结果进行过滤(因为SAPR/3只有一个或两个Log文件,系统不会自动分解对应程序的Log信息)。Tracemodes只选择SQLTrace。SQLTracePeriod系统已自动设置好无需更改。Username可以自行设定,这里设定空值表示任何账号(因为开始追踪时仅过滤一个账号,所以这里无需进一步过滤)。Objectname保留系统设定(这样可以排除追踪Log本身所产生的Log信息)。
Duration:执行这条操作所消耗的时间,单位是微秒。1微秒=1/1000000秒。
Objectname:指示该条操作的对象,对于SQLTrace一般就是Tablename。
Op:指示该条操作的类型。其中对应OPEN的条目对SQL性能具有很大的参考价值。
Statement:指示该条操作所下的SQL语句(不完全和ABAP语句中的SQL一样)
点击SQL语句,可以显示该语句的所有信息,包括条件变量(使用@PXXX字符替换)。甚至按F5可以直接跳转到ABAP语句,方便大家修改调试。
注意事项:
1.进入ST05追踪后可以关闭该界面继续执行其他操作,而不会影响到ST05的执行。
2.因为ST05不会随界面的关闭而结束,那么必须在使用完ST05后手动停止追踪,否则会持续追踪,直到SAPDBLOG满为止。这样将会导致系统故障。
3.使用追踪看到的SQL语句是ABAPSQL经解释后的版本,可能其中ABAPSQL将会被自动分解或优化。