Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

시다바리

[Oracle] Btree Index를 Bitmap으로 conversion하여 PLAN을 우회하는 법 본문

Database/Oracle

[Oracle] Btree Index를 Bitmap으로 conversion하여 PLAN을 우회하는 법

호서아빠 2008. 8. 21. 11:35
설명1 :
  Query Optimizer가 SQL 해석할 때 Where절에 여러 조건이 있고, 해당 조건 컬럼들에 Index가 각각 생성되어 있을 경우 Btree Index를 Bitmap으로 conversion하여 PLAN을 수립하여 실행함.  이럴경우 TYPE이나 Code성 컬럼의 경우 Btree Index range scan으로 해석되는 경우보다 성능이 나을수 있으나 일반적으로 성능이 저하되는 경우가 더 많음. (필수적용사항)

설명2 :
  BTree Index에 대해 Bitmap Conversion을 수행하는 실행 계획을 고려할 지의 여부를 지정한다.
  Bitmap Conversion이 발생하면 Oracle은 다음과 같은 방식으로 BTree Index를 Bitmap으로 변환해서 처리한다.
   
       BTree Index를 Scan해서 In Memory Bitmap을 만든다.
       이 과정은 실행 계획에서 BITMAP CONVERSION FROM ROWIDS 연산으로 표현된다.
       변환된 In Memory Bitmap들에 대해 Bitmap 연산을 수행한다.
       이 과정은 BITMAP AND/OR/MINUS 등의 연산으로 표현된다.
       Bitmap 연산관 결과를 이용해 이를 다시 RowID로 변환한다.
       이 과정은 BITMAP CONVERSION TO ROWIDS 연산으로 표현된다.
       Bitmap Conversion은 대부분 성능에 유리하지만, 특정 상황에서는 성능 저하의 요인이 될 수 있다.
       이런 경우에는 _B_TREE_BITMAP_PLANS 파라미터의 값을 False로 변환한다.     
     
alter session set "_b_tree_bitmap_plans" = FALSE ;     
alter system set "_b_tree_bitmap_plans" = FALSE ;
Comments