美文网首页
使用事务码 ST05 对 SAP ABAP 数据库表访问性能调优

使用事务码 ST05 对 SAP ABAP 数据库表访问性能调优

作者: 华山令狐冲 | 来源:发表于2023-05-13 10:01 被阅读0次

本教程之前的步骤,我们已经介绍了如何在 SAP ABAP 系统里使用事务码 SE11 创建数据库表,并编写 ABAP 代码来读取这些表。

我们创建了一个订单表 ZMYORDER,包含订单 ID,订单描述和下单的客户 ID 三个字段:

同时有另一张表 ZPERSON,存储了下单客户的 ID 和名称。

因为这些信息散落在两张表里,我编写了一个 ABAP 报表,打印出当前系统所有的订单ID和下单的客户名称

REPORT zdb_optimization.

DATA:lt_order  TYPE TABLE OF zmyorder,
     ls_order  LIKE LINE OF lt_order,
     lt_person TYPE TABLE OF zperson,
     ls_person LIKE LINE OF lt_person.

SELECT * INTO TABLE lt_order FROM zmyorder.

LOOP AT lt_order INTO ls_order.
  SELECT SINGLE * INTO ls_person FROM zperson WHERE person_id = ls_order-customer_id.
  WRITE:/ 'order:', ls_order-order_id, ' user:', ls_person-person_name.
ENDLOOP.

这个报表很简单,但是从设计理论上来说,存在一些性能问题。下面笔者带着大家一起,使用本教程之前介绍的数据库表访问的性能分析工具,事务码 ST05 来对这段代码进行优化。

在本教程的开篇文章,笔者就介绍过下面这张图,即 SAP ABAP 系统的经典三层架构:

我们在事务码 SE38 里编写的 ABAP 报表,执行时虽然看起来数据一下子就通过 SELECT 这一行 SQL 语句返回了,但背后实际执行了一些复杂的逻辑。

这些背后逻辑和本文这个报表如何调优,全文参考笔者这篇文章

相关文章

网友评论

      本文标题:使用事务码 ST05 对 SAP ABAP 数据库表访问性能调优

      本文链接:https://www.haomeiwen.com/subject/hlqjsdtx.html