구로디지털 오엔제이프로그래밍실무교육센터
클러스터
스캔을 이용해 데이터를 추출하도록 하는 힌트 문이며 INDEX CLUSTERED TABLE에서 사용
가능한 문장 입니다.
[형식]
아래의
예문을 참고 하세요…
SELECT
employees.last_name, department_id
FROM employees, departments
WHERE department_id = 10
AND employees.department_id = departments.department_id;
아래 내용을 참고
하세요
◈ 인덱스 클러스터란(Index Cluster) ?
- 클러스터 내의 데이터를 유지하기 위해 클러스터 인덱스라는 인덱스 사용
- 클러스터 인덱스는 주어진 키 값을 가진 행을 포함하고 있는 블록을 가리키는데 사용됨
- 클러스터 인덱스의 구조는 보통 인덱스의 구조와 비슷
(보통 인덱스가 NULL 키 값을 저장하지 않지만 클러스터 인덱스는 NULL 키를 저장)
- 클러스터로부터 행을 저장하고 읽어 들이기 위해 오라클 서버는 주어진 키 값을
- 클러스터 내의 데이터를 유지하기 위해 클러스터 인덱스라는 인덱스 사용
- 클러스터 인덱스는 주어진 키 값을 가진 행을 포함하고 있는 블록을 가리키는데 사용됨
- 클러스터 인덱스의 구조는 보통 인덱스의 구조와 비슷
(보통 인덱스가 NULL 키 값을 저장하지 않지만 클러스터 인덱스는 NULL 키를 저장)
- 클러스터로부터 행을 저장하고 읽어 들이기 위해 오라클 서버는 주어진 키 값을
갖는 첫 행을 가리키는 클러스터 인덱스를 사용
◈ Cluster Index 와 Table Index의 차이점
- 클러스터 Index는 클러스터 행당 하나의 입력 항목이 아닌 클러스터 키 값당 하나의
입력
항목을 포함.
- table Index는 없어도 사용자에게 영향을 주지 않지만 Cluster Index는 없으면 클러스터화된 데이터에 액세스 불가능…
- table Index는 없어도 사용자에게 영향을 주지 않지만 Cluster Index는 없으면 클러스터화된 데이터에 액세스 불가능…
[실습]
-
실습을 위한 예제 테이블 및 데이터는 아래 링크에서 확인
바랍니다.
myemp1 : 1000만건
myemp1_old : 100만건
mydept : 5건
테스트환경 : oracle
11g
아래 예문을 따라 실습하세요.
create cluster
myemp1_mydept1 (deptno
number)
create table
myemp3 (
empno number,
deptno number)
cluster
myemp1_mydept1(deptno)
create table
mydept3 (
deptno
number,
dname
varchar2(100)
) cluster
myemp1_mydept1(deptno)
create index
idx_myemp1_mydept1 on cluster
myemp1_mydept1
insert into
myemp3 select empno, deptno from myemp1 where rownum < 5000000
insert into
mydept3 select deptno, dname from
mydept1
select
e.empno,
d.dname
from mydept3 d,
myemp3 e
where e.deptno =
d.deptno ;
select
e.empno,
d.dname
from mydept3 d,
myemp3 e
where e.deptno =
d.deptno ;
댓글 없음:
댓글 쓰기