메뉴 건너뛰기

SAP 한국 커뮤니티

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

노름마치 2007.11.14 14:05 조회 수 : 10022 추천: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.
 

번호 제목 글쓴이 날짜 조회 수
67 sap 메뉴에서 표준 매뉴 전환 [1] selection장 2013.09.13 9448
66 FIELD-SYMBOL설명 및 예제 프로그램 [17] Delight 2008.04.30 9454
65 간단한 계산공식은 Macro를 사용하자 [5] 양키 2011.04.14 9539
64 Field Catalog 가져오지 못하는문제(REUSE_ALV_FIELDCATALOG_MERGE) [3] 양키 2013.08.16 9539
63 윈도우7에서 sapgui가 꺼지는 현상에 관한 팁 [14] 고양이야옹 2010.10.21 9572
62 ALV 동적 필드 구성 [4] 꿀홍삼 2015.02.06 9580
61 SUBQUERY 사용예 입니다. [1] 노름마치 2007.11.20 9586
60 Open SQL에서 SUM 사용시 유의사항. [11] 나침반친구 2007.06.07 9591
59 PD 인포타입 [3] file 준서기 2012.04.01 9652
58 LOOP 필드심볼이 빠르다.FIELD-SYMBOL [8] file sapjoy 2012.03.12 9671
57 BAPI_PO_CREATE1 구매오더 생성시에 사용하세요 [8] 노름마치 2007.12.10 9705
56 유용한 SAP System T-CODE sapjoy 2014.05.16 9715
55 System field 정리 [5] magicsy69 2008.06.03 9800
54 ABAP Color 색상표 [7] 웰컴 2008.12.12 9847
53 유니코드 변환 펑션 [5] 프리틀 2009.07.16 9855
» Internal table 사용시 속도개선을 위한 구문 [16] 노름마치 2007.11.14 10022
51 sap buffer 리셋 [7] sapjoy 2012.06.01 10138
50 Tip : 전표 라인 아이템 Direct 조회 [5] 2007.10.23 10174
49 ADT(abap development tool) 설치 방법입니다. [1] Wise 멘토 2012.10.12 10228
48 숫자 포맷에서 콤마와 소수점이 바뀌어 나올 경우 [3] 쌉비씨 2012.04.16 10240