실행시간이 대략 2배 차이납니다.

하지만! ABAP 시간은 DB 시간에 비해 매우 작은 양이기에 덤프 에러의 위험이 있는 필드심볼 ASSIGNING 을 항상 사용하는 것은 좋은 방법이 아닙니다.

튜닝하는데 ABAP 시간 0.001초라도 아까운 경우 LOOP ASSIGNING 을 쓸만 합니다.

 

 

case 1. 689 ms

      

case 2. 322 ms

 

case 3. 2368 ms

  

case 4. 1101 ms

 

 

 

 

FUNCTION yloop_assigning .
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IV_CASE) TYPE  I
*"  EXPORTING
*"     REFERENCE(EV_TEST_TITLE) TYPE  TEXT300
*"----------------------------------------------------------------------



  STATICS: lt_tadir TYPE TABLE OF tadir.
  DATA: ls_tadir TYPE tadir.
  FIELD-SYMBOLS: <ls_tadir> TYPE tadir.



  CASE iv_case.
    WHEN 0.
      ev_test_title = 'CASE 0 : SELECT. prepare data'.
      SELECT *
        INTO TABLE lt_tadir
        FROM tadir
        WHERE devclass LIKE 'SAP%'.



    WHEN 1.
      ev_test_title = 'CASE 1 : LOOP INTO'.
      LOOP AT lt_tadir INTO ls_tadir.
      ENDLOOP.



    WHEN 2.
      ev_test_title = 'CASE 2 : LOOP ASSIGNING'.
      LOOP AT lt_tadir ASSIGNING <ls_tadir>.
      ENDLOOP.



    WHEN 3.
      ev_test_title = 'CASE 3 : LOOP INTO & MODIFY'.
      LOOP AT lt_tadir INTO ls_tadir.
        CLEAR: ls_tadir-devclass, ls_tadir-author.
        MODIFY lt_tadir FROM ls_tadir.
      ENDLOOP.



    WHEN 4.
      ev_test_title = 'CASE 4 : LOOP ASSIGNING & MODIFY'.
      LOOP AT lt_tadir ASSIGNING <ls_tadir>.
        CLEAR: <ls_tadir>-devclass, <ls_tadir>-author.
      ENDLOOP.



    WHEN OTHERS.
  ENDCASE.



ENDFUNCTION.

+ Recent posts