使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异相关的知识,希望对你有一定的参考价值。

​​使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异​​


从 77 开始的连续三篇文章,我们了解 ABAP 程序中变量占用内存空间的话题。通过一位读者朋友向我咨询过的实际问题,介绍了使用 OPEN CURSOR 和 FETCH NEXT CURSOR 这组 ABAP 关键字来实现 ABAP 数据库表分块读取的方法。

  • ​​77. 简单聊聊 ABAP 变量消耗的内存空间这个话题​​
  • ​​78. 浅谈 ABAP 程序运行时出现『内存耗尽』错误的问题​​
  • ​​79. 使用 OPEN CURSOR 和 FETCH NEXT CURSOR 对 SAP 数据库表进行分块读写​​

本教程第 79 个步骤,我们分别用两种不同的方式实现了一个从数据库表 TADIR 中读取指定数目的 ABAP 函数。

第一种方式实现的函数名称:ZSELECT_FILTER,实现思路:

使用事务码

第二种方式实现的函数名称:ZBLOCK_FILTER, 实现思路:

使用事务码

从理论上讲,第二种实现不需要将 TADIR 数据库表里的全部数据读取到 ABAP 应用层,所以函数执行的性能,以及在 ABAP 应用层消耗的内存空间,都要优于方法1.

但这仅仅是我们的理论分析,本文我们就来通过使用一些 SAP 提供的标准工具,来客观比较两种实现的性能和内存消耗方面的差异。

详细操作步骤参考这篇​​文章​​。



以上是关于使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异的主要内容,如果未能解决你的问题,请参考以下文章

「ABAP」万字详解,一文带你入门SAT事务码SQL优化必备

为什么SAP GUI里的传统事务码能通过Fiori Launchpad启动

Debug过程中如何使用SAT跟踪程序

redis事务与关系型数据库事务比较

InnoDB和MyISAM

使用Python Pandas进行CSV列比较