Oracle Admin 강좌 (Oracle9i)
인덱스 클러스터 생성 5 2 99,999+

by 구루비 인덱스 클러스터 CREATE CLUSTER ON CLUSTER 클러스터 CLUSTER [2002.01.24]


인덱스 클러스터의 생성순서

  • 1. 클러스터를 생성한다.
  • 2. 클러스터 인덱스를 생성한다.
  • 3. 클러스터 테이블들을 생성한다.

클러스터 생성

문법

  • - cluster : 클러스터 이름
  • - column : 키 열 이름
  • - data type : 키 열의 데이터 유형과 크기
  • - TABLESPACE : 클러스터를 저장할 테이블스페이스 지정
  • - SIZE : 클러스터 키의 최대 값, 킬로바이트, 또는 메가바이트 단위로 지정
  • - INITRANS : 각 블록에 미리 할당된 트랜잭션 엔트리의 수를 지정(기본값은 최소값인 2)
  • - MAXTRANS : 각 블록에 할당될 수 있는 트랜잭션 엔트리의 수를 제한.

예제
 
-- 클러스터 키가 deptno인 클러스터를 생성 예제.
SQL> CREATE CLUSTER emp_cluster (deptno NUMBER(3))
     TABLESPACE users;    
    

클러스터 인덱스 생성

  클러스터 인덱스의 생성은 일반 인덱스 생성과 크게 다르지 않으며 CREATE INDEX뒤에 ON CLUSTER옵션을 붙여서 클러스터 인덱스 임을 명시 합니다.

  클러스터 인덱스도 일반 인덱스 생성과 같이 PCTUSED를 사용 할 수 없습니다.

문법

  • - index : 인덱스 이름
  • - cluster : 클러스터 이름

예제
 
SQL> CREATE INDEX emp_cluster_idx    -- 인덱스명 지정
     ON CLUSTER emp_cluster          -- 클러스터명 지정
     TABLESPACE users;  
    

클러스터 테이블 생성

  클러스터 테이블의 생성은 일반 테이블 생성방법과 같으며 뒤에 사용할 클러스터 명을 명시해 주면 됩니다.

문법

예제

  컬럼을 공유하는 두 테이블 사이의 컬럼에 클러스터를 지정 합니다.

  이렇게 생성된 dept_cls테이블과 emp_cls테이블의 데이터는 같은 블록에 저장되게 됩니다.

 
SQL> CREATE TABLE dept_cls (
        DEPTNO    NUMBER(3) primary key,
        DNAME     VARCHAR2(14),
        LOC       VARCHAR2(13))
        CLUSTER emp_cluster (deptno);  -- 클러스터 명 지정 
테이블이 생성되었습니다.


SQL> CREATE TABLE emp_cls (
        EMPNO     NUMBER(5) PRIMARY KEY,
        ENAME     VARCHAR2(10),
        JOB       VARCHAR2(9),
        MGR       NUMBER(4),
        HIREDATE  DATE,
        SAL       NUMBER(7,2),
        COMM      NUMBER(7,2),
        DEPTNO    NUMBER(3))
        CLUSTER emp_cluster (deptno); -- 클러스터 명 지정 
테이블이 생성되었습니다.
    

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/1116

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 가는거야 [2006.03.27 14:14:46]
그럼 기존에 생성된 테이블을 클러스터로 연결하게 되면 기존 데이타는 어떻게 되나요??;; 다른 블록으로 옮겨져서 같은 블록을 사용하게 되나요?

by 웅 [2007.05.18 12:10:36]
클러스터와 클러스터 테이블을 생성 후 클러스터 인덱스를 생성 합니다.
라고 되어 있는데
설명의 순서와는 다르네요?
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입