메뉴 건너뛰기

SAP 한국 커뮤니티



ABAP [Internal Table] 기본기

문바이 2011.09.26 19:54 조회 수 : 21056 추천:4

Internal Table

정의

타 프로그램에서는 RecordSet이라 부른다./ with header line이라는 독특한 기능이 있다.

Record의 Rowcount가 가변적으로 계속해서 추가될수 있다. ( Dynamic Data Object)

최대저장능력 : 메모리 공간(2G) , 사용(500M) , Hashed Table(200만라인 이하)

구성3요소

Line Type : itab의 Field명과 type을 지정하는 것을 의미한다

Table Type : Record들의 관리목적에 따라 지정한다 [Standard/Sorted/Hashed Table]

Key : Table Type에 따라 키값을 unique/non-unique 하게 지정한다

왜 Table Type을 3가지로 나누었을까? (추론)
아마 DB를 최초로 개발했을 때는 Standard만이 존재했을 것이다.
그런데 데이타가 점점 많아지면서 이런문제가 발생했다.
1) 계속된 갱신(Update/Insert/Delete)으로 데이타를 Select하는데 시간이 오래걸린다.
2) 검색속도 개선을 위해 만든 Index도 용량이 따라 증가하여 DB에 전체차지 공간이 많아졌다
여기서 해결방법 2가지를 생각해 보자. (일단 공간문제상 Index를 사용하지 앉는방법을 모색해 보자)
  가) Binary Search
       전산학개론에 아주옛날부터 있었다는 이 기능, 이 기능을 사용하려면 검사대상이 먼저 Sort가 되어 있어야 한다.
       여기에 착안해서 Sorted Table유형을 만들고 정렬대상이 되는 키값을 지정해 주어야 한다는 전제조건이 성립된다.
       (그렇다고 Key값이 unique 할 필요는 없다)
  나) Hashed Functions
       특정고유값을 이 함수에 넣어주면 고유한 값을 가지는 결과치로 돌려준다. 이를 Index로 사용하는 방식이다.
       (이건 무조건 Key값이 unique해야만 동작할 수 있다.)

Table Type

설명

Standard

(Index)

사용조건 : Data를 편집해야 한다.
Record가 Insert되면 자동으로 Index값을 할당해 준다. (system이 뒤에서 자동으로 번호를 채번해줌)
Index를 기준으로 움직이므로 Key값은 항시 Non-unique는 설정해야 한다.
Data의 추가는 빠르나, 데이타 양의 증가에 비례해서 검색속도가 느려진다.

Sorted

(Index)

사용조건 : Key값이 Unique,Non-unique이다/ Append보다는 Select가 많이 발생한다 / 지정된 Key는 주 검색조건이다
데이타 저장시 부터 key값의 정렬을 기준으로 생성하므로, 통계/집계시 유리한 방식의 테이블 방식임
데이타가 항시 정렬중이므로, sort명령을 내리면 오류가 발생한다.
Index를 기준으로 움직이나, Key값은 Unique / Non-unique를 값이 사용할 수 있다.
Data의 추가는 느리나[정렬해서 넣어야 하므로], 검색속도는 매우 빠르다.

Hashed

(non-index)

사용조건 : Key값이 Unique 하다/ 대용량의 테이블이다(10만~200만건) / Unique Key 는 주 검색조건이다.
200만건 이상의 대용량 테이블은 사용할 수 없다.
아래 그림과 같이 Data Address를 소스로 Hash Function의 의해 계산된 결과가 저장위치를 알려준다.
검색이 매우빠른장점, 정렬시 오랜시간이 걸릴수 있다.

Table Type  성능비교표( Type선택의 잣대로 활용할것,Easy ABAP책에 명시되어있음)

 

Standard

Sorted

Hashed

Index

O

O

X

Key

Non-Unique

Unique or Non-Unique

Unique

Access

Index권장

Key권장

Key만 사용

Append(순위)

1

3

2

Read(순위)

3

2

1

번호 제목 글쓴이 날짜 조회 수
1224 시스템 변수 [7] file 민쿨 2008.06.12 3192
1223 mm용어집 [13] file 서키트 2008.12.24 3195
1222 sales process [4] file 배움이 ~~ 2008.04.13 3197
1221 SAP ABAP Training - 01 Introduction [2] file 갈리 2009.03.03 3199
1220 SAP RFID 기술(영문) file sapjoy 2007.05.09 3206
1219 32._WD_ALV_Editing_ALV [2] file 프리틀 2008.08.04 3209
1218 e-book SAP BC Query and the QuickViewer관련 [4] file 혀나미 2007.12.31 3210
1217 감사합니다. rain shower 2009.12.29 3211
1216 Installation Instructions for SAP GUI for Java 7.3 v2 file cupycopy2000 2015.04.09 3213
1215 sap script - made easy 46c [1] file BlackBean 2007.05.23 3216
1214 냐옹이님이 요청하신 자료입니다. [12] file activeman 2008.06.19 3216
1213 Two_approaches_to_dev_web_app [1] file sonata 2009.09.22 3221
1212 Abap List Viewer 수정삭제 예제 [5] file 가보자 2007.04.12 3225
1211 sap 영한 단어집 [19] file 서키트 2009.04.30 3226
1210 김동귀_alv [2] file senk 2007.04.25 3230
1209 FAQ ABOUT SQL [1] file sapjoy 2007.03.30 3233
1208 User guide [4] file 쿠궁 2007.04.10 3236
1207 Exception Handling [8] file michael 2007.05.17 3240
1206 BAPI 소개 [10] file sapjoy 2007.05.02 3241
1205 BAPI User Guide (CA-BFA) [2] file magenta 2007.12.28 3241