Oracle Admin 강좌 (Oracle9i)
비트맵 인덱스 3 1 20,729

by 김정식 비트맵 인덱스 BITMAP INDEX CREATE BITMAP INDEX INDEX 인덱스 [2002.01.24]


비트맵 인덱스란

  비트맵인덱스는 컴퓨터에서 사용하는 최소단위인 비트를 이용하여 컬럼값을 저장하고, ROWID를 자동으로 생성하는 인덱스의 한 방법이다.

  비트를 직접 관리하므로 저장공간이 크게 감소하고 비트연산을 수행할 수 있다는 이점이 있다.

  Bitmap Index는 Index key value + Start Rowid + End Rowid + Bitmap 엔트리로 구성되어 있다.

  Start Rowid 와 End Rowid 의 Range사이에 있는 모든 row수만큼 Bitmap이 표현되어야 하지만, 오라클에서는 내부적인 압축 알고리즘을 사용하여 Bitmap을 생성하기 때문에 모두 표현되지 않는 경우도 있다

  비트맵도 B-트리처럼 조직되어 있지만, leaf 노드는 ROWID 값 들 대신 각 키 값에 대한 비트맵을 저장 한다.

 

비트맵인덱스의 장단점

장 점

  - 테이블이 많은 행을 가지며 키 열은 적은 분포도를 가질 때, 즉 열이 갖는 서로 다른 값이 몇 개 안 될 때 유리하다.(성별이나 결혼여부 등..)

  - 질의문이 OR 연산자를 포함하는 여러 개의 WHERE 조건을 자주 사용할 때 유리하다.

단 점

  - INSERT, UPDATE, DELETE와 같은 Query에서는 무의미 하다.

  - 분포도가 좋은(Unique성:값의종류가 많다) 값에 대해서는 일반적인 B-Tree인덱스가 유리하다. 즉, Bitmapped Index적용 Column의 후보는 대개 5가지 정도 이내의 값(cardinality)을 갖는다

 

비트맵(BitMap) 인덱스와 비트리(B-tree) 인덱스의 비교

B-tree 인덱스 비트맵 인덱스
큰 분포도(Cardinality)를 갖는 테이블에 적합 적은 분포도를 갖는 테이블에 적합
비교적 키의 갱신 비용이 적음 갱신 비용이 매우 큼
OR사용 Query문에 비 효율적 OR사용 Query문에 효율적
OLTP에 유용 DSS에 유용

 

비트맵 인덱스 생성문법

 
SQL> CREATE BITMAP INDEX user_gender_idx
     ON user
     TABLESPACE bitmap_idx;  
    

참고링크

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

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

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

by 돌이맹이 [2012.02.27 15:13:33]
아.. index 잡는것두 어렵네..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입