. 인덱스 생성
도입강의에서 인덱스란 어떤 것이며, 어떤 방식으로 동작하는지 충분히 학습하셨는지요?
아무리 인덱스가SQL문을 응답속도를 빠르게 한다고 해서 무조건 만드는 것이 아닙니다. 어떤 경우에는 잘못 생성되어서 테이블을 FULL SCAN하는 것보다 응답속도가 느리게 나오는 경우도 있습니다.
이번 절에서는 인덱스의 선정 시 고려되어야 될 절차 및 종류 등에 대해서 알아 보도록 하겠습니다.
1.1 인덱스 생성시 고려사항
* 인덱스의 적용대상
- 중, 대규모 테이블(6블럭 이상)
- 대상 데이터의 10% 이내의 데이터 요구인 경우
- 스캔의 범위를 줄이고자 할때
- 정렬을 필요로 하는 경우
- 테이블에 접근하지 않고 인덱스만으로 데이터 요구를 해결하고자 하는 경우
* 인덱스의 적용 시 고려사항
- 인덱스를 위한 추가적인 기억공간을 필요로 함.
- 인덱스와 테이블 I/O수의 합계가 전체 테이블을 스캔하는 I/O수보다 적은 경우에만 성능향상에
기여한다고 볼 수 있음.(손익분기점 : 10~15%)
- 여러 칼럼을 결합하여 인덱스를 구성하는 경우 칼럼의 순서 중요
- 입력, 삭제 혹은 인덱스 칼럼의 값을 수정하는 경우 인덱스 데이터도 변경되어야 하므로 그에
따른 오버헤드도 고려할 것 → 테이블당 인덱스의 수는 4개 정도가 적당
- 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음.
* 인덱스의 적용 시 고려사항
- 크기가 5~6블럭 이상되는 테이블
: 테이블의 크기가 5~6블럭 이하인 것은 인덱스를 만들지 않고 테이블을 FULL SCAN해도 무방합니다.
- 무작위접근(Random Access)이 빈번한 테이블
: 단순보관용이거나 전체조회용일 경우에는 인덱스를 생성하지 않습니다.
- 특정범위/순서의 데이터조회가 필요한 테이블
- Join의 연결고리가 되는 칼럼의 테이블
- 참조무결성을 지정한 경우 연결고리가 되는 칼럼의 테이블
* 인덱스 대상 칼럼 선정 기준
- 인덱스를 생성하고자 하는 칼럼의 분포도는 10~15%를 넘지 않아야 한다.
분포도 = 1/칼럼값의 종류 * 100 = 데이터별 평균 로우 수/테이블의 총 로우 수 *100
- 인덱스 머지(Index Merge)
: 일반적으로 가장 좋은 하나의 인덱스만 사용하는 것이 여러 개의 인덱스를 사용하는 것보다 유리
- 결합인덱스(Composite Index)
: 사용빈도 => 동등조건(=) 비교여부 → 분포도 → 자주 사용되는 정렬 순서
* e-abap님에 의해서 게시물 이동되었습니다 (2007-02-08 09:28)
도입강의에서 인덱스란 어떤 것이며, 어떤 방식으로 동작하는지 충분히 학습하셨는지요?
아무리 인덱스가SQL문을 응답속도를 빠르게 한다고 해서 무조건 만드는 것이 아닙니다. 어떤 경우에는 잘못 생성되어서 테이블을 FULL SCAN하는 것보다 응답속도가 느리게 나오는 경우도 있습니다.
이번 절에서는 인덱스의 선정 시 고려되어야 될 절차 및 종류 등에 대해서 알아 보도록 하겠습니다.
1.1 인덱스 생성시 고려사항
* 인덱스의 적용대상
- 중, 대규모 테이블(6블럭 이상)
- 대상 데이터의 10% 이내의 데이터 요구인 경우
- 스캔의 범위를 줄이고자 할때
- 정렬을 필요로 하는 경우
- 테이블에 접근하지 않고 인덱스만으로 데이터 요구를 해결하고자 하는 경우
* 인덱스의 적용 시 고려사항
- 인덱스를 위한 추가적인 기억공간을 필요로 함.
- 인덱스와 테이블 I/O수의 합계가 전체 테이블을 스캔하는 I/O수보다 적은 경우에만 성능향상에
기여한다고 볼 수 있음.(손익분기점 : 10~15%)
- 여러 칼럼을 결합하여 인덱스를 구성하는 경우 칼럼의 순서 중요
- 입력, 삭제 혹은 인덱스 칼럼의 값을 수정하는 경우 인덱스 데이터도 변경되어야 하므로 그에
따른 오버헤드도 고려할 것 → 테이블당 인덱스의 수는 4개 정도가 적당
- 새로 추가된 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음.
* 인덱스의 적용 시 고려사항
- 크기가 5~6블럭 이상되는 테이블
: 테이블의 크기가 5~6블럭 이하인 것은 인덱스를 만들지 않고 테이블을 FULL SCAN해도 무방합니다.
- 무작위접근(Random Access)이 빈번한 테이블
: 단순보관용이거나 전체조회용일 경우에는 인덱스를 생성하지 않습니다.
- 특정범위/순서의 데이터조회가 필요한 테이블
- Join의 연결고리가 되는 칼럼의 테이블
- 참조무결성을 지정한 경우 연결고리가 되는 칼럼의 테이블
* 인덱스 대상 칼럼 선정 기준
- 인덱스를 생성하고자 하는 칼럼의 분포도는 10~15%를 넘지 않아야 한다.
분포도 = 1/칼럼값의 종류 * 100 = 데이터별 평균 로우 수/테이블의 총 로우 수 *100
- 인덱스 머지(Index Merge)
: 일반적으로 가장 좋은 하나의 인덱스만 사용하는 것이 여러 개의 인덱스를 사용하는 것보다 유리
- 결합인덱스(Composite Index)
: 사용빈도 => 동등조건(=) 비교여부 → 분포도 → 자주 사용되는 정렬 순서
* e-abap님에 의해서 게시물 이동되었습니다 (2007-02-08 09:28)
댓글 3
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
198 | 테이블 유지 보수뷰 사용설명 | abap퍼 | 2007.10.18 | 498 |
197 | ABAP 한글로 정리한 교재 입니다. [9] | SARA | 2007.10.23 | 485 |
196 | abap 1~5권까지 내용 정리 [4] | bd | 2007.03.08 | 483 |
195 | RFC Function Call [12] | 허진 | 2007.05.17 | 480 |
194 | oop를 이용한 class alv [8] | senk | 2007.04.19 | 472 |
193 | 효과적인 아밥 개발 [6] | 박상우 | 2008.01.15 | 470 |
192 | 클래스빌더사용법 [7] | baper | 2008.03.19 | 467 |
191 | ABAP TABC 41,42 전체교재입니다. DOC 화일이네요 [18] | Hyui | 2008.03.19 | 465 |
190 | 유지보수뷰 만들기 [5] | 서중범 | 2007.04.19 | 447 |
189 | LOCK OBJECT 만들기 [4] | mean | 2007.05.15 | 440 |
188 | 튜닝과 관련된 문서들 [16] | sapjoy | 2007.02.07 | 437 |
» | 인덱스(index)란 무엇인가? [3] | sapjoy | 2007.02.08 | 433 |
186 | BAPI Programming관련 자표입니다.. [4] | 하얀콩 | 2007.03.19 | 430 |
185 | UserExit 에 대한 참고 자료 입니다. [6] | kong | 2008.01.24 | 429 |
184 | BACKGROUD JOB(백그라운드 잡 관리) [5] | sapjoy | 2007.03.09 | 427 |
183 | 전체교재 이어서 [3] | Hyui | 2008.03.19 | 422 |
182 | ABAP교제 입니다.(온라인 교제) [7] | 너구리 | 2007.11.20 | 417 |
181 | ABAP CODE UNICODE-ENABLE [6] | 붉은달 | 2007.02.15 | 408 |
180 | Field_Exits(EXIT, ENHANCEMENT, 확장) [17] | sapjoy | 2007.04.03 | 403 |
179 | 아밥 정리1 [2] | 정미영 | 2007.04.16 | 401 |