. 인덱스 생성
도입강의에서 인덱스란 어떤 것이며, 어떤 방식으로 동작하는지 충분히 학습하셨는지요?
아무리 인덱스가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 |
리포트 프로그램 전반적인 화면과 소스 그리고 설명입니다.
[3] ![]() | SSong | 2007.08.31 | 139 |
197 |
아밥정식교재 올립니다. 5-2
[3] ![]() | 이종원 | 2007.04.10 | 142 |
196 |
8장 REPORT 프로그램
[4] ![]() | sapjoy | 2007.03.28 | 143 |
195 |
아밥 정리4
[1] ![]() | 정미영 | 2007.04.16 | 143 |
194 |
아밥정식교재 올립니다. 5-5 마지막입니다.
[4] ![]() | 이종원 | 2007.04.10 | 147 |
193 |
ABAP/4 Performance Tuning 교육 자료
[4] ![]() | 나침반친구 | 2007.03.11 | 149 |
192 |
cbo table 유지 보수생성기
[4] ![]() | 소주와 막걸리 | 2007.01.29 | 149 |
191 |
abap objects 교재
[3] ![]() | sapjoy | 2007.02.21 | 149 |
190 |
ABAP 요약5
[7] ![]() | w | 2007.04.10 | 150 |
189 |
new notes find
[3] ![]() | foreversap | 2007.03.01 | 152 |
188 |
variant 동적일자 세팅
[3] ![]() | 쿠도스 | 2007.04.13 | 153 |
187 |
아밥 정리5
[3] ![]() | 정미영 | 2007.04.16 | 154 |
186 |
BC - ABAP Dictionary
[2] ![]() | magenta | 2007.12.21 | 159 |
185 |
AreaMenu 생성방법.
[7] ![]() | 나침반친구 | 2007.02.09 | 161 |
184 |
5장 인터널 테이블
[3] ![]() | sapjoy | 2007.05.25 | 161 |
183 | 교육용 BSP 참고 파일입니다. [1] | Wowking | 2007.08.13 | 166 |
182 |
밑에 교재 이어서 올립니다.
[3] ![]() | Hyui | 2008.03.19 | 167 |
181 |
SAP Script 자료
[1] ![]() | 김용식 | 2007.04.17 | 169 |
180 |
밑에 이어서 마지막화일입니다.
[4] ![]() | Hyui | 2008.03.19 | 171 |
179 |
22장 abap 오브젝트
[4] ![]() | sapjoy | 2007.05.25 | 174 |