嵌套loop性能优化

来源:互联网 发布:淘宝情趣内衣真人秀 编辑:程序博客网 时间:2024/04/30 11:11

内表循环嵌套内表

LOOP AT itab1 INTO wa1.

LOOP AT itab2 INTO wa2 WHERE f1 = wa1-f1

AND f3 = wa1-f3.

    “………..

ENDLOOP.

ENDLOOP.

以上的性能是很差的,会做很多无谓的循环。

SORT itab2 BY f1 f3.

LOOP AT itab1 INTO wa1.

READ TABLE itab2 WITH KEY f1 = wa1-f1

f3 = wa1-f3 BINARY SEARCH TRANSPORTING NO FIELDS.

IF sy-subrc EQ 0.

v_tabix = sy-tabix.

LOOP AT itab2 INTO wa2 FROM v_tabix.

IF wa2-f1 NE wa1-f1 or wa2-f3 NE wa1-f3. EXIT ENDIF.

*processing or records here

ENDLOOP.

ENDIF.

ENDLOOP.

上面的结构设计做了一些调整,虽然还是双循环,但是加了一些跳跃动作,体会之后会大呼奇妙。