ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [오라클 질문] 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 에서 발췌한 것임을 알려 드립니다.

    댓글 0

© Copyright 2001 ~ 2021 EXEM CO., LTD. All Rights Reserved