반응형
INDEX RANGE SCAN(MIN/MAX)
- RANGE SCAN 을 통해 MIN/MAX 값만 읽는 Operationn
해당 Operation 테스트를 위해 아래와 같이 결합인덱스를 생성한다.
CREATE INDEX PRODUCTS_IDX ON PRODUCTS(PSIZE, PRICE);
[결합 인덱스 구조]
PSIZE, PRICE 컬럼 순으로 정렬되어 인덱스의 리프 블록에 저장된다.
리프 블록을 다음과 같이 간략하게 표시
: PSIZE, PRICE, ROWID 순으로 정렬
[인덱스 리프블록]
PSIZE='XL'인 PRICE 최대값
PSIZE | PRICE | ROWID | PSIZE | PRICE | ROWID | PSIZE | PRICE | ROWID | PSIZE | PRICE | ROWID | |||
2XL | 1200 | 3XL | 1450 | L | 1160 | XL | 1530 | |||||||
2XL | 1250 | 3XL | 1500 | S | 1320 | XL | 1560 | |||||||
2XL | 1300 | 3XL | 1550 | S | 1330 | XL | 1590 | |||||||
2XL | 1350 | L | 1120 | S | 1340 | XXL | 1000 | |||||||
2XL | 1400 | L | 1140 | XL | 1500 | XXL | 1100 |
PSIZE='XL' 인 PRICE 최소값
[실습]
SELECT /*+ gather_plan_statistics */ MIN(PRICE)
FROM products
WHERE PSIZE = '2XL';
select * from table(dbms_xplan.display_cursor(null,null,'TYPICAL ALLSTATS LAST'));
[PLAN]
SQL_ID 5dnppca69jd7j, child number 0
-------------------------------------
SELECT /*+ gather_plan_statistics */ MIN(PRICE) FROM products WHERE
PSIZE = '2XL'
Plan hash value: 2350653822
------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | Reads |
------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | | 2 (100)| | 1 |00:00:00.01 | 2 | 4 |
| 1 | SORT AGGREGATE | | 1 | 1 | 8 | | | 1 |00:00:00.01 | 2 | 4 |
| 2 | FIRST ROW | | 1 | 1 | 8 | 2 (0)| 00:00:01 | 1 |00:00:00.01 | 2 | 4 |
|* 3 | INDEX RANGE SCAN (MIN/MAX)| PRODUCTS_IDX | 1 | 1 | 8 | 2 (0)| 00:00:01 | 1 |00:00:00.01 | 2 | 4 |
------------------------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - access("PSIZE"='2XL')
반응형
'Oracle > 튜닝' 카테고리의 다른 글
클러스터링 팩터(CLUSTERING FACTOR) (0) | 2022.02.16 |
---|---|
INDEX 컬럼 가공 (0) | 2022.02.11 |
INDEX RANGE SCAN DESCENDING (0) | 2022.02.10 |
INDEX RANGE SCAN (0) | 2022.02.10 |
INDEX UNIQUE SCAN (0) | 2022.02.10 |