인덱스 클러스터란(Index Cluster) ?
클러스터 내의 데이터를 유지하기 위해 클러스터 인덱스라는 인덱스 사용
클러스터 인덱스는 주어진 키 값을 가진 행을 포함하고 있는 블록을 가리키는데 사용된다.
클러스터 인덱스의 구조는 보통 인덱스의 구조와 비슷하다. (보통 인덱스는 NULL 키 값을 저장하지 않지만 클러스터 인덱스는 NULL 키를 저장)
클러스터로부터 행을 저장하고 읽어 들이기 위해 오라클 서버는 주어진 키 값을 갖는 첫 행을 가리키는 클러스터 인덱스를 사용
2. Oracle Hint, Tuning_Hints For Access Paths
6.2 Hints for Access Paths (Cluster)
클러스터 스캔을 이용해 데이터를 추출하도록 하는 힌트 구문이며 INDEX
CLUSTERED TABLE에서 사용가능한 문장이다.
/*+ CLUSTER(테이블) */
[형식]
아래 예문을 참고 하세요.
SELECT /*+ CLUSTER */
employees.last_name, department_id
FROM employees, departments
WHERE department_id = 10
AND employees.department_id = departments.department_id;
3. Oracle Hint, Tuning_Hints For Access Paths
인덱스 클러스터란(Index Cluster) ?
• 클러스터 내의 데이터를 유지하기 위해 클러스터 인덱스라는 인덱스 사용
• 클러스터 인덱스는 주어진 키 값을 가진 행을 포함하고 있는 블록을 가리키는데 사용된다.
• 클러스터 인덱스의 구조는 보통 인덱스의 구조와 비슷하다. (보통 인덱스는 NULL 키 값을
저장하지 않지만 클러스터 인덱스는 NULL 키를 저장)
• 클러스터로부터 행을 저장하고 읽어 들이기 위해 오라클 서버는 주어진 키 값을 갖는 첫
행을 가리키는 클러스터 인덱스를 사용
Cluster Index 와 Table Index의 차이점
• 클러스터 Index는 클러스터 행당 하나의 입력 항목이 아닌 클러스터 키 값당 하나의
입력 항목을 포함.
• 테이블 인덱스는 없어도 사용자에게 영향을 주지 않지만 Cluster Index는 없으면 클러스터화
된 데이터에 액세스 불가능하다.
4. Oracle Hint, Tuning_Hints For Access Paths
SQL> drop table mydept3;
SQL> drop table myemp3;
SQL> drop cluster myemp3_mydept3;
SQL> create cluster myemp3_mydept3 (deptno varchar2(1));
SQL> create index idx_myemp3_mydept3 on cluster myemp3_mydept3;
SQL> create table mydept3 (
deptno varchar2(1),
dname varchar2(100)
) cluster myemp3_mydept3(deptno);
SQL> create table myemp3 cluster myemp3_mydept3(deptno)
as
select empno, deptno from myemp1 where rownum < 5000000;
SQL> insert into mydept3
select deptno, dname from mydept1;
SQL> commit;
SQL> set autotrace on explain
SQL> set timing on
SQL> select count(e.empno)
from mydept3 d,
myemp3 e
where e.deptno = d.deptno ;