본문 바로가기
컴퓨터/Oracle

[Oracle]Cluster Index 오라클 클러스터 인덱스

by TEATO 2014. 7. 23.
반응형

[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의 블락부분 정보가 

일치하는것을 볼 수 있습니다. 같은 블락에 데이터가 있다는 뜻이죠.

이렇게 되면 다른 테이블이라도 한블락내에 데이터가 저장되기때문에

빠르게 엑세스할수가 있죠.


반응형

댓글