본문 바로가기

ORACLE/아키텍처 기초

[ORACLE] 클러스터링 팩터(Clustering Factor)

728x90
반응형

오라클 클러스터링 팩터(Clustering Factor)

테이블 내 어떤 컬럼에서 같은 값을 갖는 데이터가 물리적 저장 구조에 모여있는 정도.

데이터 저장 구조가 얼마나 최적화 되어있는지를 나타낸다.

 

값을 갖는 값이 모여있다면, 흩어져있을 때 보다 더 적은 block을 access해서 결과 값을 출력할 수 있다.

즉 클러스터링 팩터가 좋으면 i/o 효율이 좋다.

 

 

인덱스의 Clustering Facter

인덱스의 데이터 정렬 순서와 테이블의 데이터 저장 순서가 얼마나 비슷한가?

비슷한 순서로 저장되어있을 수록 인덱스의 클러스터링 팩터가 좋다.

 

 

 

인덱스의 Clustering Facter  확인 방법

통계정보 생성 시 dba_indexes 에서 clustering_factor 를 확인할 수 있다.

-- 인덱스의 클러스터링팩터 조회
select owner, index_name, clustering_factor from dba_indexes;

 

 

인덱스의 Clustering Facter 효율

인덱스 clustering_factor 값이 테이블 블록 수에 가까울수록 효율이 좋고, num_rows에 가까울수록 효율이 좋지 않다.

-- 인덱스의 클러스터링팩터, 테이블의 num_rows, blocks 조회
SELECT I.OWNER, I.INDEX_NAME, I.TABLE_NAME, I.CLUSTERING_FACTOR, T.NUM_ROWS, T.BLOCKS
FROM DBA_INDEXES I, DBA_TABLES T
WHERE I.OWNER = T.OWNER
AND I.TABLE_NAME = T.TABLE_NAME

하지만 위 조회 결과는 통계 정보에 기반한 것이며, 통계 수집을 하지 않는 경우 정확하지 않을 수 있다.

728x90
반응형