Oracle/튜닝

INDEX RANGE SCAN

pbj1102 2022. 2. 10. 16:33
반응형

INDEX RANGE SCAN
: INDEX UNIQUE SCAN을 제외한 모든 INDEX SCAN은 INDEX RANGE SCAN 이다.
: 고유 인덱스가 정의된 컬럼이 조건절에서 '=' 비교 연산자를 제외한 모든 연산자로 비교되는 경우
: 비고유 인덱스가 정의된 컬럼이 조건절에 기술되는 경우

 

[INDEX RANGE SCAN B-Tree 구조]

 

[실습]

 

SELECT /*+ gather_plan_statistics */ *
FROM products
WHERE PRICE BETWEEN 3350 AND 4500;

 

 

 

 

 select * from table(dbms_xplan.display_cursor(null,null,'TYPICAL ALLSTATS LAST'));

 

[PLAN]

SQL_ID  8ssw9b2n9hmsx, child number 0
-------------------------------------
SELECT /*+ gather_plan_statistics */ * FROM products WHERE PRICE 
BETWEEN 3350 AND 4500
 
Plan hash value: 1668926985
 
----------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                           | Name               | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
----------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                    |      1 |        |       |    24 (100)|          |     22 |00:00:00.01 |      25 |
|   1 |  TABLE ACCESS BY INDEX ROWID BATCHED| PRODUCTS           |      1 |     22 |   440 |    24   (0)| 00:00:01 |     22 |00:00:00.01 |      25 |
|*  2 |   INDEX RANGE SCAN                  | PRODUCTS_PRICE_IDX |      1 |     22 |       |     2   (0)| 00:00:01 |     22 |00:00:00.01 |       3 |
----------------------------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("PRICE">=3350 AND "PRICE"<=4500)

[설명]

[Id=2] 

   A-Rows = 22, 22번의 Single Block I/O 발생

   Buffers = 3, 인덱스에서 3개의 블록을 읽고 22개의 인덱스 항목을 검색

          (Single Block I/O 1회당 테이블 블록 1개를 읽음)

          (만약 위의 값과 차이가 나는 경우는 클러스터링 팩터와 연관이 있음) 

 

[Id=1]

  Buffers = 25, 22(=25-3)개의 테이블 블록을 읽음

 

 

 

반응형

'Oracle > 튜닝' 카테고리의 다른 글

INDEX RANGE SCAN(MIN/MAX)  (0) 2022.02.11
INDEX RANGE SCAN DESCENDING  (0) 2022.02.10
INDEX UNIQUE SCAN  (0) 2022.02.10
B-Tree 인덱스 구조  (0) 2022.02.10
FULL TABLE SCAN  (0) 2022.02.10