1, ST05介绍
ST05是SAP R/3 提供的标准ABAP SQL 跟踪工具,可以进行 SQL Trace,Enqueue Trace,RFC Trace,Buffer Trace以及HTTP trace。
使用ST05时,注意事项如下:
- 进入ST05追踪后可以关闭该界面继续执行其他操作,而不会影响到ST05 的执行。
- 因为ST05不会随界面的关闭而结束,那么必须在使用完ST05 后手动停止追踪,否则会持续追踪,直到SAP DB LOG满为止。这样将会导致系统故障。
- 使用追踪看到的SQL语句是ABAP SQL 经解释后的版本,可能其中ABAP SQL 将会被自动分解或优化
2, SQL Trace
通过SQL跟踪,可以具体查询数据来源于哪些数据库表,例如:可以查询某个tcode或几个tcode所涉及的数据库表。
为了减少在最终查询结果的工作量,要在屏幕显示你所要显示的数据的前一步,先进入ST05,点击Activate Trace,然后执行显示数据前的操作,屏幕数据显示之后,回到ST05,点击Deactivate Trace,最后点击Display Trace, 就可以具体查询数据来源于哪些数据库表了。
1,输入tcode st05,点击 activate trace 选项,开始进入跟踪。如下图,
2,tcode:fnvm,进入合同修改界面:
3,完成后,进入st05,点击deactivate trace,然后再点击display trace 如下图,
4, 查询结果说明:
对上图字段说明如下:
Duration :持续时间,单位:毫秒 微秒
Obj. name :表名
Op. :操作类型
Statement :所执行的SQL语句。
3, Enqueue Trace
通过Enqueue Trace,系统可以记录所有关于一个用户或一组用户的锁与解锁声明。
跟踪记录可以包含如下信息:
- 锁定对象所涉及的表明
- 设锁的程序名
- 锁的类型
- 锁的所有者
- 设锁以及解锁的时间
1,输入st05,选择enqueue Trace
2,后面的操作和SQL Trace操作相同
3, 查询结果说明:
对上图字段说明如下:
Duration :锁操作执行的时间
Obj. name :锁的名称
Op. :锁操作
Recs. :Number of granules in the lock object.
RC :返回的编码,0表示锁操作成功,1表示操作不成功(锁多项应经被锁或部分已被锁)。
Statement :This column lists the granules for the lock request
4, RFC Trace
使用RFC跟踪,你可以跟踪应用程序所执行的远程调用或SAP系统在调用中所执行,你可以显示和分析跟踪文件中的跟踪记录日志。
跟踪的记录包含一下内容:
- 哪一个Function Modules 在程序中被调用
- RFC是否成功执行
- 远程调用进程所花费的时间
- RFC的传达标记,client or server。
- 远程调用的实例。
- 技术参数
- 在RFC中发送和接收的位数。
1, 输入st05,选择RFC Trace
2, 后面的操作和SQL Trace操作相同
3, 查询结果说明:
对上图字段说明如下:
Duration :远程调用所运行的时间
Obj. name :被远程调用的功能函数实例简称。
Op. :Client 或 Server。
Recs. :RFC跟踪记录的类型,共有五个,分别为:1,2,3,4,5。
RC :返回的是远程调用的日志编码。如果为0,则说明远程调用成功;如果不等于0,则说明远程调用发生错误。
Statement :依次显示:本地实例的名字;远程实例的名字;被调用的Function Module 的名字;发送和接收的位数。
5, Table Buffer Trace
通过表缓冲区跟踪,可以监控对表缓冲区的访问以及缓冲区的加载和卸载。表缓冲区跟踪可以得到如下信息:
- Which buffer accesses your statement executes
- Which buffer operations are used
- How the buffer is managed
1, 输入st05,选择BUFFER Trace
2, 后面的操作和SQL Trace操作相同
3,查询结果说明:
对上图字段说明如下:
Duration :持续时间
Obj. name :表名
Op. :显示执行缓冲区中特定表操作的功能。
Recs.:读取的记录数。
RC :0 表示功能执行正确;64表示没有发现记录,即记录数为零;256表示表缓冲区可访问(缓冲区类型为R、P), 缓冲区类型 S, C, O, 和 M表示一个对象已被插入;1024表示记录不在缓冲区,要加载缓冲区。
Statement :依次显示为:缓冲区类型;KEY长度;KEY的值。
其他:
Database Operations Measured by SQL Trace
The SQL Trace analysis helps in measuring the execution time of the following data base operations that are performed when executing an SQL statement.
- DECLARE: This operation declares a new cursor and assigns the SQL statement to that cursor created.
- PREPARE: This operation converts the SQL statement into native SQL and frames out an execution plan for that statement.
- OPEN: This operation opens the declared cursor and passes the parameters for database access.
- FETCH: This operation passes one or more data records fetched to the database interface of the R/3 system.
- REOPEN: Once a new select statement is brought in then this operation opens the cursor previously declared for previous select statement and per Forms new parameter passing to the database.
- EXEC: Passes the parameters for the database statement, and executes the statements that change data in the database