반응형
[Oracle]Cluster Index 오라클 클러스터 인덱스
dept 테이블과 emp 테이블이 있는데 이 데이터를 뽑아올때
deptno로 조인해서 항상 불러온다면 이럴때 클러스터 인덱스로 구성하는것이 효율적입니다.
먼저 dept로 클러스터를 만들어 줍니다.
이때 size를 7800으로 설정해줬는데 그이유는
현재 오라클 한블락당 저장할 수 있는 byte수를 확인해보면
8k로 되어있습니다.(SHOW PARAMETER BLOCK으로 확인해보면 나옵니다.)
그런데 블락에는 항상 300byte정도가 헤더로 쓰입니다.
여기에는 데이터를 저장할 수 없죠.
그래서 size를 300byte를 뺀 7800으로 설정해줬습니다.
이렇게 설정했다고해서 정확히 7800으로 되지않고 알아서 적절히.. 설정이 됩니다.
그리고나서 방금만든 클러스터에 인덱스르 만들어줍니다.
테이블을 만들때 아래에
CLUSTER CLU_EMP_DEPT(DEPTNO)
이렇게 만들어준 클러스터이름과 기준이 될 칼럼을 써주면 됩니다.
만든 테이블에 데이터를 넣어보겠습니다.
BIG_DEPT1과 BIG_EMP1에서 DEPTNO가 74인 데이터를 조회했을때 ROWID의 블락부분 정보가
일치하는것을 볼 수 있습니다. 같은 블락에 데이터가 있다는 뜻이죠.
이렇게 되면 다른 테이블이라도 한블락내에 데이터가 저장되기때문에
빠르게 엑세스할수가 있죠.
반응형
'컴퓨터 > Oracle' 카테고리의 다른 글
[Oracle]분석 기능 statspack, AWR(Automatic Workload Repository) (0) | 2014.07.23 |
---|---|
[Oracle]오라클 테이블 종류 (0) | 2014.07.23 |
[Oracle]HASH PARTITION TABLE (0) | 2014.07.23 |
[Oracle]Range partition table (0) | 2014.07.23 |
[Oracle]MATERIALIZED VIEW 데이터가 있는 뷰 (0) | 2014.07.23 |
댓글