인프런 커뮤니티 질문&답변

황정열님의 프로필 이미지

작성한 질문수

오라클 성능 분석과 인스턴스 튜닝 핵심 가이드

클러스터링 팩터(Clustering Factor)의 이해

클러스터링 팩터의 사용 상황

작성

·

350

1

현업에서 클러스터링 팩터를 사용하는 때는 일반적이지 않고 특정한 상황에서만 적용하나요..? 만약 그렇다면 어떤때 사용하는지 예시를 들어주시면 고맙겠습니당

답변 2

1

황정열님의 프로필 이미지
황정열
질문자

2020. 12. 26. 23:25

상세한 설명 감사합니다 ~~

1

권 철민님의 프로필 이미지
권 철민
지식공유자

2020. 12. 26. 23:10

안녕하십니까,

일반적으로 클러스터링 팩터는 테이블 access시에 기본적으로 적용되는 방식입니다. 클러스터링 팩터는 개념입니다. 1개 block을 액세스 할때 얼마나 내가 원하는 row를 가져 올 수 있느냐, 당연히 1block access를 할때 많은 block을 액세스 하면 좋습니다.

이 클러스터링 팩터 개념이 잘 적용된게 보통은 인덱스 클러스터링 팩터 입니다. 인덱스를 통해 테이블을 1 block을 access할 때 얼마나 내가 원하는 row를 가져 올 수 있느냐 입니다.

두번째로 클러스터링 팩터 개념을 테이블 레벨에서 극대화 한게 클러스터(Cluster) 테이블이 있습니다. 이 클러스터 테이블을 인덱스 클러스터/해쉬 클러스터 테이블이 있습니다만, 인덱스 클러스터 테이블을 기준으로 말씀드리면, 동일한 Key값을 가진 레코드를 동일한 블럭에 위치할 수 있게 만들어주는 오브젝트 입니다.

하지만 이 클러스터 테이블을 잘 사용되지 않습니다. 해당 clustering key가 아닌 다른 key값으로 조회 시에는 clustering factor가 오히려 나뻐서 수행 속도가 더 느려지며, DML 수행 시에도 해당 Cluster key영역에 데이터를 찾아서 넣어줘야 하는등 여러가지 제약 조건이 많기 때문입니다.

과거(한 20년전쯤)에는 특정 key값으로 조회하는 범위가 넓은 경우(예를 들어 between 조건으로 조회)하는 경우에 I/O 성능이 나오지 않을 경우 대안으로 사용하곤 했는데, 근래는 거의 사용되지 않습니다.

감사합니다.