使用 FOR ALL ENTRIES 将 ABAP 内表内容作为数据库表的读取条件之一试读版

简介: 使用 FOR ALL ENTRIES 将 ABAP 内表内容作为数据库表的读取条件之一试读版

本教程之前的文章,我们已经介绍了如何用 ST05 事务码,对一个 ABAP 报表进行性能分析和优化的步骤。


重构后的代码:

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.
SELECT * INTO TABLE lt_person FROM zperson.
LOOP AT lt_order INTO ls_order.
  READ  TABLE lt_person into ls_person with key person_id = ls_order-customer_id.
  "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 采集到的重构后的数据库表访问情况,对 ZMYORDER 和 ZPERSON 表分别各自只读取了一次,每次读取了4条数据出来。

上一篇教程末尾,笔者提到,本报表的设计和实现仍然有进一步优化的空间。

虽然我们重构后,已经成功将数据库表的总共读取次数,降低到两次,但是看上图第 10 行代码发现,我们将整张 zperson 表的全部内容,读取到了内表 lt_person 里。

本例订单表 ZMYORDER 里能看到,系统总共只有三个用户下单,假设系统总共的注册用户不是例子里的4条(即下面第二张图),而是四千万条,那我们为了区区4条订单数据,而将四千万条用户数据全部从数据库表中取出,存储到 ABAP 应用程序内存中,显然是毫无必要的。

下面是新一轮的性能优化思路的详细介绍。


相关文章
|
1月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
38 3
|
1月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
23 1
|
1月前
|
BI 网络安全
如何使用 ABAPGit 在 SAP ABAP 系统安装 abap2xlsx 工具试读版
如何使用 ABAPGit 在 SAP ABAP 系统安装 abap2xlsx 工具试读版
25 0
|
1月前
|
XML 网络安全 开发工具
如何下载并安装 SAP ABAPGit,并完成 ABAP 服务器上 SSL 证书的配置试读版
如何下载并安装 SAP ABAPGit,并完成 ABAP 服务器上 SSL 证书的配置试读版
29 0
|
1月前
|
网络安全
实战分析 - 为什么有些 SAP ABAP 程序,启动之后界面有些按钮是灰色的试读版
实战分析 - 为什么有些 SAP ABAP 程序,启动之后界面有些按钮是灰色的试读版
20 0
|
1月前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
28 1
|
1月前
|
存储 API
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
42 1
|
1月前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
28 0
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
|
1月前
|
开发者 供应链 BI
SAP ABAP CALL SUBSCREEN 代码解析
SAP ABAP CALL SUBSCREEN 代码解析
68 0
|
1月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
28 0
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示

热门文章

最新文章