ABAP性能优化之使用 “for all entries”
生活随笔
收集整理的这篇文章主要介绍了
ABAP性能优化之使用 “for all entries”
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
在select语句后面的where附加项中可以使用左关联,这会极大的提高程序速度,但同时也有一些局限,如下:
重复项会被从结果数据集中自动删除,因此要注意在select语句中需要给出详细的唯一关键字组合。
如果 For All Entries IN 字段修饰的内表是空表的话,源表的所有行都会被选入目标表中。因此在使用前一定要首先检查第一个表是否为空,这一点很重要,否则会有performance问题。
不推荐使用:
Loop at int_cntry.
Select single * from zfligh into int_fligh
where cntry = int_cntry-cntry.
Append int_fligh.
Endloop.
推荐使用:
IF NOT int_cntry[] IS INITIAL.
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.
ENDIF. 与50位技术专家面对面20年技术见证,附赠技术全景图
重复项会被从结果数据集中自动删除,因此要注意在select语句中需要给出详细的唯一关键字组合。
如果 For All Entries IN 字段修饰的内表是空表的话,源表的所有行都会被选入目标表中。因此在使用前一定要首先检查第一个表是否为空,这一点很重要,否则会有performance问题。
如果 For All Entries IN 字段修饰的内表很大的话,程序速度反而会减慢,而不是加快。因此应该尽量使该表的数据量控制在一个适当的大小。
不推荐使用:
Loop at int_cntry.
Select single * from zfligh into int_fligh
where cntry = int_cntry-cntry.
Append int_fligh.
Endloop.
推荐使用:
IF NOT int_cntry[] IS INITIAL.
Select * from zfligh appending table int_fligh
For all entries in int_cntry
Where cntry = int_cntry-cntry.
ENDIF. 与50位技术专家面对面20年技术见证,附赠技术全景图
总结
以上是生活随笔为你收集整理的ABAP性能优化之使用 “for all entries”的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: ABAP性能优化之正确使用”move”
- 下一篇: ABAP性能优化之向内表添加纪录