메뉴 건너뛰기

SAP 한국 커뮤니티

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

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

번호 제목 글쓴이 날짜 조회 수
508 클라이언트간 CTS로 데이타이관 [15] file 노름마치 2008.07.12 11389
507 ALV에 아이콘 넣는 방법2 푸른밤 2007.08.01 11268
506 ALV 엑셀 다운로드시 한글깨짐 해결 [7] sapjoy 2008.06.12 11124
505 Open SQL 문법 정리 [14] SAP질 중 2008.08.21 11020
504 SE16N 테이블 변경가능 모드로 전환하는방법 [8] 양키(이경환) 2014.03.12 10835
503 List of useful SAP Transactions [1] file 아밥뽀 2014.12.17 10799
502 숫자 포맷에서 콤마와 소수점이 바뀌어 나올 경우 [3] 쌉비씨 2012.04.16 10714
501 Field Catalog 가져오지 못하는문제(REUSE_ALV_FIELDCATALOG_MERGE) [3] 양키 2013.08.17 10667
500 SUBQUERY 사용예 입니다. [1] 노름마치 2007.11.21 10635
499 ADT(abap development tool) 설치 방법입니다. [1] Wise 멘토 2012.10.12 10479
» Internal table 사용시 속도개선을 위한 구문 [16] 노름마치 2007.11.14 10381
497 Tip : 전표 라인 아이템 Direct 조회 [5] 2007.10.23 10362
496 BAPI자료입니다. [14] file neopaper 2011.03.24 10349
495 sap buffer 리셋 [7] sapjoy 2012.06.01 10278
494 유니코드 변환 펑션 [5] 프리틀 2009.07.16 10082
493 Report 개발 시 Select-option에 search help 값이 자동으로 입력이 안될때 [6] file 곰님MAX 2010.02.13 10066
492 ALV 동적 필드 구성 [4] 꿀홍삼 2015.02.07 10006
491 ABAP Color 색상표 [7] 웰컴 2008.12.12 9981
490 System field 정리 [5] magicsy69 2008.06.03 9942
489 Open SQL에서 SUM 사용시 유의사항. [11] 나침반친구 2007.06.08 9938