정렬 해시 클러스터 테이블
- 10g에서 새롭게 소개.
- 해시 클러스터 테이블과 IOT의 장점이 결합된 테이블.
- 정렬된 순서에 따라 데이터를 물리적으로 삽입.
- 아래와 같은 유사한 쿼리를 반복해서 수행할 때 가장 적합.
(키 값으로 데이터를 추출하고, 다른 어떤 컬럼으로 데이터를 정렬할 경우)
select *
from t
where key = :x
order by sorted_column
- 해시 키는 cust_id, 정렬하기 위한 컬럼은 order_dt
create cluster shc
( cust_id number,
order_dt timestamp sort
)
hashkeys 10000
hash is cust_id
size 8192
/
create table cust_orders
( cust_id number,
order_dt timestamp sort,
order_number number,
username varchar2(30),
ship_addr number,
bill_addr number,
ivoice_num number
)
cluster shc (cust_id, order_dt)
/
set autotrace traceonly explain
variable x number
select cust_id, order_dt, order_number
from cust_orders
where cust_id = :x
order by order_dt;
Execution Plan
----------------------------------------------------------
Plan hash value: 465084913
----------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
----------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 39 | 0 (0)|
|* 1 | TABLE ACCESS HASH| CUST_ORDERS | 1 | 39 | |
----------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("CUST_ID"=TO_NUMBER(:X))