정보처리기술사/02.토픽자료

인덱스(Index)

anodos 2012. 5. 7. 21:19

1. 데이터베이스 인덱스의 개념

    가. 인덱스(Index)의 정의

         - 데이터의 검색속도 개선을 위해 테이블 Row를 동일한 경로로 식별가능하도록 별도로 구조화 한

           데이터 객체

         -대표키와 ROWID를 통한 액세스가 가장 빠른 조회경로

         - Hash, B-Tree 등 검색 알고리즘 이용, 조회성능 향상

    나. 인덱스의 선정 기준

         1) 기본키와 외래키

             - 기본키는 자동으로 인덱스 생성

             - 외래키는 Full Scan을 예방하기 위해 상상 인덱스 선정

         2) 접근 경로 분석

             - 각 어플리케이션이 수행하는 SQL 수집

             - 자주 사용하는 SQL 분석 수행, 인덱스 선정

         3) 분포도 조사

             - 분포도 = 평균 ROW 수 / 총 ROW*100

             - 분포도가 10~15% 정도의 컬럼을 인덱스 후보로 도출

         4) 인덱스 순서 결정

             - 조합인덱스의 경우 접근경로에 따른 순서 결정

             - 접근경로를 분석하여 부분범위 처리 수행

2. 순서인덱스와 클러스터 인덱스

      가. 순서인덱스

           - 단일 인덱스 : 데이터 파일의 블록에 하나의 엔트리를 가지는 인덱스

           - 결합 인덱스 : 두개 이상의 키로 구성된 인덱스

      나. 클러스터 인덱스

          - 저장된 데이터의 물리적 순서에 따라 인덱스 생성(삽입, 삭제 시 재정렬)

          - 실제 물리적 데이터 순서대로 검색하므로 속도 빠름

          - 한개의 릴레이션에서 한개의 인덱스만 가능

 

3. 해쉬 인덱스와 비트맵 인덱스

      가. 해쉬 인덱스

           문제점 : 해시키 값의 충돌로 인해 오버플로우 발생, 클러스터링 팩터 나빠저 효율감소

           예) 소형 데이터, 우편번호, 시스템 사용자 정보 등

      나. 비트맵 인덱스

          - 비트 이용 컬럼값 저장, ROWID를 자동으로 생성하는 인덱스

          - 생성 유지의 제약으로 OLAP에 적합(검색시 장점)

          - 선분형태로 저장하여 키압축이 적용되어 저장공간 wjffir

          - 문제점 :

             '='이 아닌 LIKE, >, <, >=, <= 등은 추출 비트 명확하지 않음

            빈번한 수정시 블럭레벨 잠금으로 부하 유발

 

  4. 인덱스 성능향상 기법과 사용시 고려사항

       가. 옵티마이저를 이용한 성능향상 기법 비교

            - RBO(Rule Based Optimizer)

              개념 : 사전에 정의된 Rule 기반 계획

              기준 : 실행 우선 순위(Ranking)

              성능 : 사용자 SQL 작성 숙련도

              특징 : 실행계획의 예측이 용이함

              고려사항 : 저효율, 사용자의 규칙이해도

           - CBO(Cost Based Optimizer)

              개념:최소비용 계산 실행계획 수립

              기준 : 억세스비용(Cost)

              성능 : Optimizer 예측 성능

              특징 : 저장된 통계정보의 활용

              고려사항 : 예측 복잡, 비용산출 공식 정확성

             

       나. 인덱스 사용시 고려사항

           - 적용업무의 성격에 맞는 유형의 선택 필요함(OLAP, OLTP)

           - 지나치게 많은 인덱스는 오버헤드 발생, 분포도 좋은 컬럼 만 사용

           - 조인시 옵티마이저가 인덱스 사용하도록 유도

           - I/O 발생으로 인덱스는 별도 테이블 스페이스/파일지정유리(주기적 Rebuild)  

                                                                                                                                  "끝"

            

 

 

 

    

 

반응형

'정보처리기술사 > 02.토픽자료' 카테고리의 다른 글

B트리 기반 인덱스  (0) 2012.05.07
비트맵 인덱스  (0) 2012.05.07
스스로 글을 읽고 정리할 수 있는 능력 배양  (0) 2012.05.07
테스트 오라클(Test Oracle)  (0) 2011.03.08
Mobile IPTV  (0) 2011.03.08