LOOP 与并行游标 LOOP 性能?

问题描述

我正在面试一份工作,在他们发给我的测试中,他们提供了内部表上的 2 个 ABAP 循环的以下图像,并询问哪个循环执行得更快:

enter image description here

在互联网上大量检查后,我得出了两种不同的结果:

  • 一方面,就我在网上找到的内容而言,“WHERE”语句比逻辑 if 语句更快,因为它直接处理满足条件的记录。
  • 另一方面,似乎 2 个循环正在做不同的事情,并且每当 WA2-K != WA1-K 时,正确的循环基本上都会向前跳跃,所以我相信执行非常依赖于提供的表。

我错过了什么吗?这个问题有明显的 1 个答案吗?

解决方法

您的屏幕截图来自程序 RSHOWTIM(或 SE38 > 菜单环境 > 示例 -> 性能示例),该程序可在所有基于 ABAP 的软件中使用。

这两种算法在做完全相同的事情 (*),但一种比另一种表现更好。 SY-TABIXLOOP AT 块内最后迭代行的行号(前提是它是标准表或排序表)。

(*) 见 Gert 评论

全屏是这个(在 ABAP 7.52 中): SAP RSHOWTIM Nested loops

注意:如果你需要训练,你可以在你的电脑上安装一个 ABAP 试用系统。或者您可以使用 Cloud 试用版(您必须支付网络/磁盘使用费)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...