Oracle Admin 강좌 (Oracle9i)
Bitmap Join Index 3 0 99,999+

by 구루비 BITMAP JOIN INDEX CREATE BITMAP INDEX [2006.03.21]


Bitmap Join Index란

  - 비트맵 인덱스는 결혼여부, 성별처럼 전체 테이블이 많은 행을 가지며 키 열은 적은 분포도(cardinality)를 가질 때, 즉 열이 갖는 서로 다른 값이 몇 개 안 될 때 효과적으로 사용할 수 있는 인덱스 구조 입니다.

  - 오라클 9i에서는 이 비트맵 인덱스를 한 단계 더 발전시켜 비트맵 조인 인덱스(Bitmap Join Index) 기능을 제공하고 있습니다.

  - 테이블들 사이의 조인 결과에 비트맵 인덱스를 생성하는 것으로 질의 처리를 위한 조인을 피함으로써 성능 향상을 제공 합니다.

  - Bitmap Join Index를 생성할 때 WHERE절을 지정 합니다.

  - Bitmap Join Index를 사용하면 실제 join 작업이 발생하지 않도록 할 수 있습니다.

Bitmap Join Index 생성

일반적인 Bitmap Join Index 생성
 
SQL> CREATE BITMAP INDEX emp_dept_loc
     ON emp (dept.loc)
     FROM emp, dept
     WHERE emp.deptno = dept.deptno
     TABLESPACE IDX1;  -- tablespace 부분은 db에 맞게 수정해주세요.
 
 
-- Bitmap Join Index 생성 후 SQL 문장 실행
-- 위에서 생성한 Bitmap Join Index의 컬럼을Where절에서 사용합니다.
SQL> SELECT /*+ INDEX(emp emp_dept_loc) */ emp.empno, emp.ename
     FROM emp, dept
     WHERE emp.deptno = dept.deptno
       AND dept.loc ='CHICAGO';  
    

두 개 이상의 컬럼에 Bitmap Join Index 생성
 
SQL> CREATE BITMAP INDEX emp_dept_loc_dname
     ON emp (dept.loc, dept.dname)
     FROM emp, dept
     WHERE emp.deptno = dept.deptno;
 
 
-- Bitmap Join Index 생성 후 SQL 문장 실행
SQL> SELECT emp.empno, emp.ename
     FROM emp, dept
     WHERE emp.deptno = dept.deptno
      AND dept.loc ='CHICAGO'
      AND dept.dname = 'SALES';
   
    

두 개 이상의 테이블에 Bitmap Join Index 생성
 
-- Bitmap Join Index 생성
SQL> CREATE BITMAP INDEX emp_dept_loc_job
     ON emp (dept.loc, bonus.job)
     FROM emp, dept, bonus
     WHERE emp.deptno = dept.deptno
       AND emp.ename = bonus.ename;
 
 
-- Bitmap Join Index 생성 후 SQL 문장 실행
SQL> SELECT emp.empno, emp.ename
     FROM emp, dept, bonus
     WHERE emp.deptno = dept.deptno
       AND emp.ename = bonus.ename
       AND dept.loc ='CHICAGO'
       AND bonus.job = 'MANAGER';  
    

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

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

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

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