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性能优化之向内表添加纪录