您的位置:首页 > 编程语言

SAP ABAP代码优化(5)之空间换取时间策略

2014-10-25 22:15 316 查看
在SAP ABAP报表开发中,我们经常需要频繁读取基本表中的数据,例如MAKT表的描述。如下述代码所示:

LOOP AT ITAB.

SELECT SINGLE MAKTX INTO itab-maktx FROM makt WHERE MATNR = ITAB-MATNR.

ENDLOOP.

上述代码在内表ITAB数据量不大的时候,性能影响不会太大,但是如果内表ITAB数据量较多时,程序花在读取TABLE MAKT上的时间就会很多,性能也就会下降很多。这时可以修改成以下代码,首先一次性全部读入到内表:

SELECT * CORRESPONDING TABLE OF it_makt FROM makt .

SORT it_makt BY matnr.

LOOP AT ITAB.

REAB TABLE it_makt WITH KEY matnr = itab-matnr binary search.

IF sy-subrc = 0.

itab-maktx = it_makt-maktx.

ENDIF.

ENDLOOP.

加上上述代码采用二分查找法,程序的性能会有很大的提升。相当于全部数据从内存中读取。这就是用内存空间换取时间的例子。

以上为本站原创,转载请注明出处.

以上来自 http://www.abapblogs.com/?p=197
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: