[ABAP] Internal Table Type별 특징 및 퍼포먼스 비교

규벨롭·2024년 3월 8일
0

ABAP

목록 보기
3/3
post-thumbnail

테이블 종류 및 특징


Standard Table

  • 보통 가장 흔히 사용하는 Type으로 별다른 타입을 지정해주지 않으면 Standard로 선언된다.
  • Index를 사용하거나 KEY 값을 통해 데이터에 접근한다.
  • NON-UNIQUE KEY만 선언가능.
GT_STANDARD LIKE [STANDARD] TABLE OF GS_TAB [WITH NON-UNIQUE KEY].

Sorted Table

  • KEY 값으로 자동 정렬되는 테이블
  • READ할 때 알아서 BINARY SEARCH를 사용함.
  • UNIQUE / NON-UNIQUE 선언 가능.
  • INSERT로만 데이터 삽입가능 (APPEND X).
GT_SORTED LIKE SORTED TABLE OF GS_TAB [WITH UNIQUE/NON-UNIQUE KEY].

Hashed Table

  • Index가 없고 KEY 값으로만 접근가능.
  • UNIQUE KEY만 사용.
  • SORT하면 검색 더 느려짐.
  • WITH TABLE KEY로 검색해야 가장 빠름.
GT_HASHED LIKE HASHED TABLE OF GS_TAB [WITH UNIQUE KEY].

퍼포먼스 비교


17000건의 데이터를 각각 Internal Table에 담아두고 READ하는 시간을 측정

Table을 키값으로 SORT 하는게 생각보다 오래 걸리는걸 볼수 있음.
테스트 전까진 SORTED TABLE에 데이터 담고 찾는거랑 STANDARD TABLE에 담고 정렬해서 이진탐색 하는거랑 유의미한 차이가 있을까 했는데 17000건에서 조차 큰 차이가 있다.

같은 데이터를 SELECT 하는데도 HASHED >> SORTED >> STANDARD 순.
STANDARD TABLE 에서 BINARY SEARCH로 읽어 오는 시간은 5ms.
즉 SORT하는데 4000ms. 가까이 사용했다는 건데 데이터가 많아질수록 SORT 하는데 시간도 더 많이 쓸테니 무조건 SORT후 BINARY SEARCH가 옳은 방법은 아닌것 같음.
데이터 양과 READ만 할건지 APPEND도 할건지를 고려해 테이블 TYPE을 정해야 도움이 될것 같다.

profile
SAP / ABAP

0개의 댓글