ABAP性能优化之使用 “for all entries”
生活随笔
收集整理的這篇文章主要介紹了
ABAP性能优化之使用 “for all entries”
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在select語句后面的where附加項中可以使用左關(guān)聯(lián),這會極大的提高程序速度,但同時也有一些局限,如下:
重復(fù)項會被從結(jié)果數(shù)據(jù)集中自動刪除,因此要注意在select語句中需要給出詳細(xì)的唯一關(guān)鍵字組合。
如果 For All Entries IN 字段修飾的內(nèi)表是空表的話,源表的所有行都會被選入目標(biāo)表中。因此在使用前一定要首先檢查第一個表是否為空,這一點很重要,否則會有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位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
重復(fù)項會被從結(jié)果數(shù)據(jù)集中自動刪除,因此要注意在select語句中需要給出詳細(xì)的唯一關(guān)鍵字組合。
如果 For All Entries IN 字段修飾的內(nèi)表是空表的話,源表的所有行都會被選入目標(biāo)表中。因此在使用前一定要首先檢查第一個表是否為空,這一點很重要,否則會有performance問題。
?
如果 For All Entries IN 字段修飾的內(nèi)表很大的話,程序速度反而會減慢,而不是加快。因此應(yīng)該盡量使該表的數(shù)據(jù)量控制在一個適當(dāng)?shù)拇笮 ?
?
不推薦使用:
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位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的ABAP性能优化之使用 “for all entries”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP性能优化之正确使用”move”
- 下一篇: ABAP性能优化之向内表添加纪录