3.2.4 비트맵(Bitmap) 실행계획

  • 전반적인 내용을 보면 비트맵 실행계획의 특징이나 특이성을 설명한 것이 아니므로
    BITMAP에 대한 전반적인 내용으로 변경하여 발표함. 실행계획에 대해서는 크게 설명할 내용 없음

3.2.4.1 조건 연산자 별 비트맵 실행계획

가)동치(Equal)비교 실행계획

  1. 기본 비트맵 수행 방식을 그림으로 설명할 계획임

나)범위(Range)비교 실행계획

  1. 비트맵 인덱스에서는 범위 연산을 하면 RANGE SCAN이 실행 계획에서 발생함
  2. B-Tree일 경우 NUMBER 형을 LIKE로 검색할 경우 인덱스를 사용할 수 없으나, 비트맵은 인덱스를 FULL SCAN 하는 실행 계획이 발생함

다)AND 조건 실행계획

  1. 비트맵 인덱스에서 AND 조건을 사용할 경우 AND 연산을 수행함

라)OR 조건 실행계획

  1. 비트맵 인덱스에서 OR 조건에 기술된 컬럼의 모든 인덱스를 활용할 수 있음

마)부등식(Not Equal) 비교 실행계획

  1. 비트맵 인덱스에서 부등식이 사용되면 BITMAP MINUS 연산을 수행하여 인덱스를 활용할 수 있음
  2. NOT NULL 제약 조건이 없는 경우 NULL을 제거하는 작업이 추가로 수행됨

바) NULL 비교 실행계획

  1. 비트맵 인덱스에서 NULL은 정상적인 값들과 동일하게 취급됨

3.2.4.2 서브쿼리 실행계획

  • 비트맵 인덱스라고 해서 서브쿼리를 포함한 어떠한 조인에서도 B-Tree 인덱스일 때와 달라지는 것은 없음

2.4.3 B-Tree 인덱스와의 연합(Combine) 실행계획

  • 비트맵을 ROWID로 전환할 수 있고, 다시 ROWID를 비트맵으로 전환할 수 있는 특성을 이용해 B-Tree 인덱스를 BITMAP으로 전환하여 BITMAP 연산을 수행
    --> DYNAMIC SQL 에서 비트맵 컨버젼으로 변환하여 수행하는 경우 있음 ML

3.2.5 기타 특수한 목적을 처리하는 실행계획

3.2.5.1 순환(Recursive) 전계 실행계획

  1. CONNECT BY START WITH를 사용하여 순환 전개 시 나타나는 실행 계획
  • 설명 및 그림 추가
  • WHERE 절 조건 추가랑 START WITH 절에서 조건을 사용했을 때 차이 점 설명
  • SIBLINGS BY 도 설명해줘야 함

3.2.5.2 UPDATE 서브쿼리 실행계획

  1. UPDATE 사용 시 WHERE 절 SET 절 모두에 서브쿼리를 사용할 수 있음
  2. 서브쿼리 수행 결과가 NO DATA FOUND 일 경우 NULL값으로 UPDATE되므로 주의해야 함

3.2.5.3 특이한 형태의 실행계획

가)서브쿼리 팩토링 실행계획

  1. WITH 절을 사용하여 생성한 쿼리문을 TEMPORARY 테이블로 생성하여 사용하는 방식
  2. 인라인 뷰와 WITH절은 거의 동일하지만 가장 큰 차이는 인라인뷰는 여러 번 수행되지만 WITH절은 한번 사용한 결과를 TEMPORARY 테이블에 저장하여 재 사용하는 방식

나)특이한 DELETE 문 서브쿼리

  1. FROM절 인라인 뷰를 사용한 DELETE 구문

다)다중 테이블 입력 서브쿼리

  1. 하나의 쿼리로 액세스한 로우를 여러 개의 테이블에 동시 입력할 수 있는 기능

라)Having 절 서브쿼리 실행계획

  1. HAVING절은 GRUOUP BY에서 생성된 결과에 다시 조건을 부여하기 위해 사용하는 구문

마)ROLLUP, CUBE, GROUPING SETS 처리 실행계획

  1. ROLLUP과 CUBE는 GROUP BY 한 결과에 대해 여러가지 소계를 쉽게 구함
  2. ROLLUP은 소계와 총계를 구하는 함수
  3. CUBE는 다시 공부
  4. GROPING SET 에서 정의한 그룹 단위마다 하나씩의 그룹이 생김
    EX) GROPING SET ((DEPTNO,JOB),(ENAME,DEPTNO));

바)MERGE 문 실행계획

  1. 처리 대상과 정보 제공 집합을 아우터 조인하여 조인에 성공하면 UPDATE 실패하면 INSERT 함
  2. I/O 효율을 위해 다중 처리 기법을 활용
  3. MATCH인 경우 UPDATE 절과 필요하다면 DELETE 절을 기술함(버전에 따라 다름)