SAP 使用SQL Trace(ST05)

本文介绍了如何使用SAPR/3的内置工具SQLTrace(ST05)进行SQL语句追踪,包括设置追踪参数、启动及停止追踪、查看追踪结果等步骤。并提供了注意事项以避免系统故障。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SAP 使用SQL Trace(ST05)

SAP R/3 提供标准ABAP SQL 跟踪工具。使用T-Code:ST05 可以进入追踪设定画面:

 

         在Trace Modes 区域中选择需要在SAP R/3 Server 上trace 的范围:
         SQL Trace: 追踪该AP Server 上已过滤的SQL 语句。
         Enqueue Trace: 追踪Enqueue Server 上的队列。
         RFC Trace: 追踪该AP Server 上RFC 行为。
         Buffer Trace: 追踪该AP Server 上Buffer 中的行为。
 
         这里若要追踪SQL 则只要选中SQL Trace。然后在Trace Requests 区域中点选 Trace on with Filter 进行输出过滤:
 
 
 
         这里仅追踪SBA 账号对于MB03 所有的SQL操作。也可以填入程序名称甚至AP Server 上的进程代号来追踪。还可以在Table name 区域选定包含/排除的表名。点击对钩之后即启动追踪。

 
         在需要查看追踪结果时需要先停止追踪(Trace off) 然后再点击Display trace 显示如下:
 
 
          需要重新对结果进行过滤(因为SAP R/3只有一个或两个Log 文件,系统不会自动分解对应程序的Log 信息)。Trace modes 只选择SQL Trace 。SQL Trace Period 系统已自动设置好无需更改。User name 可以自行设定,这里设定空值表示任何账号(因为开始追踪时仅过滤一个账号,所以这里无需进一步过滤)。Objectname 保留系统设定(这样可以排除追踪Log 本身所产生的Log 信息)。
         Duration: 执行这条操作所消耗的时间,单位是微秒。1微秒=1/1000000秒。
         Objectname: 指示该条操作的对象,对于SQL Trace 一般就是Table name。
         Op.: 指示该条操作的类型。其中对应OPEN的条目对SQL 性能具有很大的参考价值。
         Statement: 指示该条操作所下的SQL 语句(不完全和ABAP 语句中的SQL 一样)
 
         点击SQL 语句,可以显示该语句的所有信息,包括条件变量(使用@PXXX 字符替换)。甚至按F5 可以直接跳转到ABAP 语句,方便大家修改调试。
 
 
注意事项:
1. 进入ST05 追踪后可以关闭该界面继续执行其他操作,而不会影响到ST05 的执行。
2. 因为ST05 不会随界面的关闭而结束,那么必须在使用完ST05 后手动停止追踪,否则会持续追踪,直到SAP DB LOG 满为止。这样将会导致系统故障。
3.使用追踪看到的SQL 语句是ABAP SQL 经解释后的版本,可能其中ABAP SQL 将会被自动分解或优化。可以参照ABAP code 进行比对。
<think>好的,用户需要关于SAP ST22的使用指南和故障排除方法。首先,我需要回顾一下SAP ST22的基本信息。ST22是SAP系统中的事务代码,用于查看ABAP运行时错误,也就是通常所说的dump分析工具。用户可能遇到了程序崩溃的情况,需要通过ST22来查看错误日志,找出原因。 接下来,我得整理使用步骤。用户可能需要知道如何访问ST22,进入事务代码后如何查看错误列表,以及如何解读错误信息。常见的错误类型比如短存储转储(Short Dump)可能会有不同的错误代码,比如DBSQL_DUPLICATE_KEY_ERROR或SYSTEM_NO_ROLL,需要分别解释这些错误的原因和解决方法。 然后是关于故障排除的部分。需要指导用户如何根据错误消息中的详细信息定位问题,比如检查程序代码、数据库操作或系统配置。同时,可能需要提到相关的系统参数,比如内存设置,但用户之前的引用中提到了一些内存相关的参数,比如abap/heap_area_total,这些是否与ST22中的错误有关联?例如,如果出现内存不足的错误,可能需要调整这些参数。 还要考虑用户可能的深层需求。用户之前询问过SAP ST22的技术信息,可能是在实际使用中遇到了具体的错误,需要具体的解决步骤,而不仅仅是理论上的解释。因此,回答需要实用,步骤清晰,可能还需要提供实例或参考文档。 另外,用户提供的引用内容中有关于内存管理的参数,比如ztta/roll_extension_dia和abap/heap_area_dia,这些可能在处理某些ST22错误时会涉及到,特别是与内存相关的错误。例如,如果出现TSV_TNEW_PAGE_ALLOC_FAILED错误,可能需要调整这些内存参数,所以需要将这些引用内容整合到故障排除建议中。 最后,生成相关问题时要围绕ST22的常见使用场景和错误类型,比如如何分析特定错误代码,如何导出错误日志,或者如何预防常见错误等。确保问题能够帮助用户进一步深入理解ST22的功能和应用。</think>### SAP ST22 使用与故障排除指南 SAP ST22(事务代码ST22)是ABAP程序运行时错误分析工具,用于查看和分析系统生成的短存储转储(Short Dump)。以下是关键操作步骤和常见问题解决方法: #### 一、基础操作流程 1. **访问ST22** 在SAP命令框输入`/nST22`或通过路径 `System > Utilities > Runtime Analysis > ABAP Dump Analysis` 进入 2. **筛选错误日志** - 按时间范围选择(默认显示最近7天) - 按用户/程序名过滤:例如输入`ZREPORT*`过滤自定义报表错误 - 按错误类型过滤:如`DBSQL_DUPLICATE_KEY_ERROR`(数据库主键冲突) 3. **解析错误详情** 点击错误条目查看包含以下关键信息的结构树: ```ABAP Error analysis -> 核心错误描述 How to correct -> 官方修复建议 Runtime environment -> 触发程序/事务代码 ``` #### 二、典型错误处理案例 1. **TSV_TNEW_PAGE_ALLOC_FAILED** - **现象**:内存分配失败导致程序终止 - **解决方案**: - 检查参数文件中的内存配置: $$ \text{abap/heap\_area\_total} \geq 2000 \quad (\text{单位:MB}) $$ $$ \text{ztta/roll\_extension\_dia} \geq 5000 $$ - 优化程序内存使用(如分页读取数据库) 2. **DBSQL_DUPLICATE_KEY_ERROR** - **根源**:数据库表主键/唯一索引冲突 - **调试步骤**: 1. 在ST22中定位`Internal Mode`段的SQL语句 2. 使用事务代码`SE16N`验证目标表数据 3. 检查程序逻辑中的`INSERT/UPDATE`操作 3. **SYSTEM_NO_ROLL** - **触发条件**:工作进程回滚内存不足 - **配置调整**: ```ABAP rdisp/ROLL_MAXFS = 2048000 // 扩展回滚区域大小 rdisp/PG_MAXFS = 4096000 // 调整页文件上限 ``` #### 三、进阶排查工具 1. **与ST12集成分析** 在ST22错误界面点击`Performance Trace`按钮可直接跳转到ST12事务码,进行SQL跟踪与性能分析[^1] 2. **批量导出日志** 使用后台作业定期导出错误清单: ```ABAP REPORT RSDUMPEX. SUBMIT RSDUMPEX WITH p_date = sy-datum WITH p_time = '080000' EXPORTING LIST TO MEMORY. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值