대용량 데이터베이스솔루션 1 (2009년)
인덱스의 활용 0 0 79,389

by 구루비스터디 b-트리 index bitmap index [2009.04.29]


제1장 엑세스 효율의 향상

옵티마이저가 처리경로를 판단하는데 있어서 가장 중요한 요소

  • 인덱스
  • 클러스터
  • 조인의 효율 향상
  • 최적의 인덱스 판단
  • 다중처리(Array processing)
  • 부분범위처리(Partial range scan)

인덱스란?

  • 인덱스는 일반 테이블이나 클러스터에서 쓰여지는 선택적인 객체로서, 오라클 데이터베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조.
  • 옵티마이저가 최적의 경로를 결정하기 위해 사용하는 요소(Factor)
  • 테이블 로우(Row)에 하나씩 대응되는 별도의 객체(Object).
  • 인덱스는 생성시킨 컬럼의 값과 테이블 ROW의 ROWID 로 구성되어 있고, 이들간에 서로 정렬(Sort)되어 있다.
    동일한 값이 여러 개 존재하면 같은 값의 인덱스 ROW는 다시 ROWID로 정렬되어 저장된다.
  • 인덱스는 하나의 테이블에 여러 개를 지정할 수 있고, 하나의 컬럼은 여러 개의 인덱스에 포함 될 수도 있다.
  • 테이블과 무관하게 생성 및 삭제를 독립적으로 할 수 있다.
  • 자동 인덱스 : 프라이머리 키 또는 UNIQUE 제약조건에 의해 자동적으로 생성되는 인덱스.
  • 수동 인덱스 : CREATE INDEX 명령을 실행해서 만드는 인덱스.

인덱스의 구분

논리적 인덱스

  • 단일열, 복합, 유일, 비유일, 함수기반 인덱스

물리적 인덱스

  • b-tree_index.ppt : 인덱스 대상의 해당 컬럼의 중간 값을 찾아 root-level로 등록하고 작은 값에 대한 정보와 큰 값에 대한 정보를 대칭형으로 저장하는 방식의 인덱스, 인덱스의 저장 모양이 나무와 비슷하다고하여 B-tree 인덱스라 부른다.
  • 내림차순 인덱스 : 기본 구조는 B-tree 인덱스와 동일, 가장 큰 값을 앞에다 저장하고 가장 작은 값을 뒤부분에 저장하여 최근의 값을
    좀더 빠르게 검색하기 위한 목적의 인덱스
  • 역방향 인덱스 : 기본 구조는 B-tree인덱스와 동일, 인덱스 테이블에 입력되는 값들을 뒤집어 받아들여 해당 값들에 대한
    연속적인 삭제 작업이 발생하더라도 어느 한쪽 블록에서의 데이터가 삭제되는 현상을 막을 수 있는 인덱스.
  • bitmap_index.ppt : 인덱스에 저장된 컬럼의 값들을 binary화 하여 저장하는 방법
  • BITMAP-JOIN인덱스 : 기본구조는 BITMAP인덱스와 동일, 두 개 이상의 테이블의 조인 결과에 대해 정의되어 생성된 인덱스
  • IOT 인덱스 : 일반적인 인덱스와 달리 인덱스가 독립적인 저장구조를 가지고 있는 것이 아니고 테이블 자체를 인덱스로 형태로
    가지고 있는 인덱스
"구루비 데이터베이스 스터디모임" 에서 2009년에 "대용량 데이터베이스 솔루션 1" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/2462

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입