嵌套loop性能优化

    技术2022-05-14  0

    内表循环嵌套内表

    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.

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


    最新回复(0)