zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

如何使用 ST05 事物码,快速找到访问指定数据库表的 ABAP 代码试读版

2023-02-19 12:29:19 时间

在实际项目开发过程中,ABAP 顾问可能会经常接到这类需求:

调研 SAP 标准产品某个功能的具体实现位置,在此基础上做增强开发。

比如下图是 SAP CRM 产品主数据管理应用的搜索页面。

点击 Search 按钮之后,我们能够看到根据指定的搜索条件,在 ABAP 后台数据库表里搜索之后得到的结果:

现在我们已经从组里其他同事那里得知产品搜索时需要访问数据库表 COMM_PRODUCT, 但是没有告诉我们具体在哪一段 ABAP 代码里访问的这张表,需要我们自己找到答案

本文介绍如何使用 ST05 这个工具,快速找到准确的 ABAP 代码位置。

ST05 同本教程之前介绍的 SAT 工具有一些共同点:二者都是一种性能记录和分析工具,都需要使用者启动工具,开启跟踪模式,然后在跟踪模式下运行应用,运行完毕之后,工具会将记录的性能执行数据和分析结果展现给用户。

SAT 侧重点在记录 ABAP 代码的执行效率,包括 ABAP 类,ABAP Function Module,ABAP Subroutine 和 Open SQL 语句的执行性能,而 ST05 则侧重于数据库层面的执行性能分析。

关于 SAT 工具的使用方法,本教程之前已经详细介绍过。

下面通过一个实际例子来介绍 ST05 的使用方法。

我们先把前台需要运行的应用准备好。在打开 ST05 的跟踪模式之后,就不要运行除了需要监控的这个应用之外的其他应用了。否则的话,其他应用时访问的数据库表的性能数据也会一起被 ST05 记录下来,会干扰我们的结果分析。

另外注意一点,如果大家需要监控的应用程序是 Stateful(有状态) 类型的应用。

举个例子:比如点击搜索按钮之后,只有第一次执行才会从数据库里读取数据,并将数据存放到应用的缓存中。下一次搜索,如果搜索条件不变, 那么直接从应用缓存中取出上一次的搜索结果返回给 UI.

在使用 ST05 对这种有状态应用的程序进行性能分析时,要特别注意,每次开启跟踪模式之前,先将应用的缓存情况,或者干脆直接新启一个会话,比如关闭浏览器再重新打开。