gpt4 book ai didi

performance - 使用 ABAP 7.40+ 语法进行最有效的 itab 过滤

转载 作者:行者123 更新时间:2023-12-03 06:49:32 25 4
gpt4 key购买 nike

在 7.40 版本中,我们有很多方法来过滤内部表数据。例如,可以使用这样的 ABAP 构造:

FILTER运算符

DATA(lt_extract) =
FILTER #( lt_bseg USING KEY matnr_bwtar WHERE matnr = CONV matnr( SPACE )
AND bwtar = CONV bwtar( SPACE ) ).

FOR表迭代 VALUE施工运算符(operator)

DATA(lt_extract) = 
VALUE tty_bseg( FOR line IN lt_bseg WHERE ( matnr EQ SPACE AND bwtar EQ SPACE ) ( line ) ).

两者相比是否有任何性能提升?为什么?

也许您知道任何其他语法来有效地执行内部表过滤?

最佳答案

我在网上没有找到任何基准,但是自己做一个测试很简单。

专门用于该任务的 FILTER 比其他结构更快,这是合乎逻辑的,因为在许多其他可能的操作之间进行选择会产生开销成本。

FILTER 还具有强制开发人员使用索引的优点。当然,索引的构建本身就有成本,因此您必须平衡索引的使用与完成的过滤量。

ABAP 文档 7.52 很好地解释了 FILTER 的性能以及何时不使用它的建议 (https://help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/en-US/index.htm?file=abenconstructor_expression_filter.htm):

Table filtering can also be performed using a table comprehension or atable reduction with an iteration expression for table iterations withFOR. The operator FILTER provides a shortened format for this specialcase and is more efficient to execute.

A table filter constructs theresult row by row. If the result contains almost all rows in thesource table, this method can be slower than copying the source tableand deleting the surplus rows from the target table.

关于performance - 使用 ABAP 7.40+ 语法进行最有效的 itab 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48825937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com