메뉴 건너뛰기

SAP 한국 커뮤니티

Internal table 사용시 속도개선을 위한 구문

노름마치 2007.11.14 14:05 조회 수 : 10014 추천:10

LOOP WHERE 절 개선


- 개선전
  LOOP AT it_mseg WHERE spmon EQ p_month
                    AND werks EQ it_box-werks
                    AND charg EQ it_box-zboxno.
                                     
- 개선후
  SORT IT_MSEG_PLANT BY SPMON WERKS CHARG.  
  READ TABLE IT_MSEG_PLANT WITH KEY SPMON = P_MONTH    
                                    WERKS = IT_BOX-WERKS
                                    CHARG = IT_BOX-ZBOXNO
                                    BINARY SEARCH TRANSPORTING NO FIELDS.
  CHECK SY-SUBRC = 0.
  LOOP AT IT_MSEG_PLANT FROM SY-TABIX.
   IF IT_MSEG_PLANT-SPMON <> P_MONTH OR
      IT_MSEG_PLANT-WERKS <> IT_BOX-WERKS OR
      IT_MSEG_PLANT-CHARG <> IT_BOX-CHARG.
     EXIT.
   ENDIF.
   ....
   ....
  ENDLOOP.



READ 문 개선


- 개선전
  READ TABLE it_ztm3e300_tmp WITH KEY  werks  = it_ztm3e300-werks 
                                       zponor = it_ztm3e300-zponor.
                                      
- 개선후
  SORT IT_ZTM3E300_TMP BY WERKS ZPONOR. <= 추가
  READ TABLE it_ztm3e300_tmp WITH KEY werks  = it_ztm3e300_plant-werks
                                      zponor = it_ztm3e300_plant-zponor
                                      BINARY SEARCH. <= 추가



MODIFY 문 개선


- 개선전
  MODIFY it_hub50 TRANSPORTING wruser wrdate wrtime wrstatus
                         WHERE bukrs  = w_hub50-bukrs
                           AND sndate = w_hub50-sndate
                           AND trnscd = w_hub50-trnscd
                          
- 개선후
  내부테이블을 SORTED TABLE 로 선언



DELETE 문 개선


- 개선전
  LOOP AT IT_DEL
    DELETE it_010  WHERE lotno = it_del-lotno.
    DELETE it_011  WHERE lotno = it_del-lotno.
  ENDLOOP
 
- 개선후
  READ TABLE IT_010 WITH KEY LOTNO = IT_DEL-LOTNO
                             BINARY SEARCH TRANSPORTING NO FIELDS.
  LOOP AT IT_010 FROM SY-TABIX.
    IF IT_010-LOTNO <> IT_DEL-LOTNO.
      EXIT.
    ENDIF.
    DELETE IT_010.
  ENDLOOP.



Nested Loops


DATA : IVBAK LIKE VBAK OCCURS 0,
       IVBAP LIKE VBAP OCCURS 0.


SORT : IVBAK BY VBELN,
       IVBAP BY VBELN.
      
- 개선전
  LOOP AT IVBAK.
    LOOP AT IVBAP WHERE VBELN = VBAK-VBELN.
      WRITE:/ IVBAK-VBELN, IVBAP-VBPOS, ...
    ENDLOOP.
 ENDLOOP.


- 개선후
  LOOP AT IVBAK.
    READ TABLE IVBAP WITH KEY VBELN = IVBAK-VBELN
                     BINARY SEARCH TRANSPORTING NO FIELDS.
    LOOP AT IVBAP FROM SY-TABIX.
      IF IVBAP-VBELN <> IVBAK-VBELN.
        EXIT.
      ENDIF.
      WRITE:/ IVBAK-VBELN, IVBAP-VBPOS, ...
    ENDLOOP.
  ENDLOOP.
 

번호 제목 글쓴이 날짜 조회 수
387 System field 정리한 내용이에요 [4] 김창훈 2007.08.21 5487
386 테이블 update 프로그램 [4] sapjoy 2007.08.29 4746
385 Image를 화면에 보여주는 방법 [1] 정두영 2007.08.30 6001
384 OK Code Values... 흠,,, [1] 김창훈 2007.08.31 4652
383 제가 모은 팁들입니다. [62] file 풍운사랑 2007.09.07 5541
382 미니 SAP 설치 메뉴얼 입니다. [5] 신종철™ 2007.09.17 4574
381 너무도 당연해서 가끔 잊곤하는 공기와 같은 존재 'F1' key [5] 백혜정 2007.09.19 4034
380 ABAP TIP [4] file 둘리67 2007.10.03 5952
379 ICON ascii code [3] file sapjoy 2007.10.05 5004
378 SAP 어플리케이션의 구성 [3] file 노름마치 2007.10.10 3897
377 간단팁1 : 텍스트 금액에서 천단위 구분자 ',' 삭제(개수 상관없음) [12] 윤훈태 2007.10.15 5432
376 간단팁2 : 특정 값으로 구분된 텍스트, 한방에 분리 및 각각의 변수에 저장 [2] 윤훈태 2007.10.15 4138
375 새로운 Print format 추가하기 [5] file 이명환 2007.10.18 3679
374 그룹을 이용하여 SAP PRD 시스템 접속하기 [2] file 이명환 2007.10.18 4531
373 Tip : 전표 라인 아이템 Direct 조회 [5] 2007.10.23 10166
372 주민번호 체크 [3] 임선미 2007.10.23 4795
371 widget을 이용한 Job monitor 데모 [1] 해처리 2007.10.24 3603
370 BAPI_DELIVERYPROCESSING_EXEC 납품문서 만들때 사용하세요 노름마치 2007.10.29 7494
369 NATIVE SQL의 INSERT 문 [4] sapjoy 2007.11.13 6258
» Internal table 사용시 속도개선을 위한 구문 [16] 노름마치 2007.11.14 10014