B TREE BITMAP PLANS
EXEM Knowledge Base
목차 |
[편집] 기본 정보
[편집] Parameter 정보
| Syntax | _B_TREE_BITMAP_PLANS = TRUE|FALSE |
| 설정방법 |
|
| 버전 및 기본값 |
| 9iR2 | 10gR1 | 10gR2 | 11g |
|---|---|---|---|
| TRUE | TRUE | TRUE | TRUE |
[편집] 설명
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로 변환한다.
[편집] 참고 사항
아래 예제는 Bitmap Conversion이 발생한 경우 실행 계획이다.
------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 5 | 125 | 19 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID | T2 | 2 | 34 | 19 (0)| 00:00:01 | | 2 | NESTED LOOPS | | 5 | 125 | 19 (0)| 00:00:01 | | 3 | TABLE ACCESS BY INDEX ROWID | T1 | 3 | 24 | 4 (0)| 00:00:01 | |* 4 | INDEX RANGE SCAN | T1_N1 | 3 | | 1 (0)| 00:00:01 | | 5 | BITMAP CONVERSION TO ROWIDS | | | | | | | 6 | BITMAP AND | | | | | | | 7 | BITMAP CONVERSION FROM ROWIDS| | | | | | |* 8 | INDEX RANGE SCAN | T2_B2 | 60 | | 1 (0)| 00:00:01 | | 9 | BITMAP CONVERSION FROM ROWIDS| | | | | | |* 10 | INDEX RANGE SCAN | T2_B1 | 60 | | 1 (0)| 00:00:01 | -------------------------------------------------------------------------------------------