태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

[오라클 질문] not null 판단쿼리에서 bitmap인덱스 사용

기술이야기/Ask 엑셈 2009. 11. 24. 14:54
2009-11-12 08:19:16 에 등록된 질문입니다.  윤봉운 님께서 질문해 주셨습니다.


[오라클 질문] not null 판단쿼리에서 bitmap인덱스 사용
Q: 
not null 판단쿼리에서 bitmap인덱스를 사용할 경우 빠르게 처리가 될 수 있다고
해서 써 봤는데
오히려 full scan 보다 cost가 더 많이 걸리는 결과가 나왔습니다.
partition테이블은 아니구요.

---------------------------------------------------
#full scan의 경우

SELECT *
FROM BMSROUTENODECOMPO_YOON2
WHERE LINKSEQ IS NOT NULL


Plan
SELECT STATEMENT ALL_ROWSCost: 13,517 Bytes: 5,047,861 Cardinality: 42,419   
  1 TABLE ACCESS FULL TABLE OPTAGO4.BMSROUTENODECOMPO_YOON2 Cost: 13,517 Bytes: 5,047,861 Cardinality: 42,419


---------------------------------------------------
itmap인덱스를 생성해서 hint를 준경우

SELECT /*+ INDEX(BMSROUTENODECOMPO_YOON2 BIT_IDX_LINKSEQ) */ *
FROM BMSROUTENODECOMPO_YOON2
WHERE LINKSEQ IS NOT NULL


Plan
SELECT STATEMENT ALL_ROWSCost: 149,401 Bytes: 5,047,861 Cardinality: 42,419       
  3 TABLE ACCESS BY INDEX ROWID TABLE OPTAGO4.BMSROUTENODECOMPO_YOON2 Cost: 149,401 Bytes: 5,047,861 Cardinality: 42,419     
    2 BITMAP CONVERSION TO ROWIDS   
        1 BITMAP INDEX FULL SCAN INDEX (BITMAP) OPTAGO4.BIT_IDX_LINKSEQ








그래서
scott계정으로 테스트를 해보니 같은 결과 였습니다.

----------------------------------------------------------
select *
from emp
where comm is not null;

Plan
SELECT STATEMENT ALL_ROWSCost: 3 Bytes: 148 Cardinality: 4   
  1 TABLE ACCESS FULL TABLE SCOTT.EMP Cost: 3 Bytes: 148 Cardinality: 4

----------------------------------------------------------

select /*+ index(emp BIT_IDX_COMM) */ *
from emp
where comm is not null;

Plan
SELECT STATEMENT ALL_ROWSCost: 23 Bytes: 148 Cardinality: 4       
  3 TABLE ACCESS BY INDEX ROWID TABLE SCOTT.EMP Cost: 23 Bytes: 148 Cardinality: 4     
    2 BITMAP CONVERSION TO ROWIDS   
        1 BITMAP INDEX FULL SCAN INDEX (BITMAP) SCOTT.BIT_IDX_COMM


----------------------------------------------------------

bitmap인덱스를 사용함에도 불구하고 full scan보다 cost가 더 걸리는 것은 어떤 경우일까요? 그리고 not null판단 쿼리에서 성능을 높일 수 있는 방법은 무엇일까요?

A:                   엑셈 답변 보러 가기
위 글은 (주) 엑셈 온라인 서비스 ASK EXEM 에서 발췌한 것임을 알려 드립니다.