본문 바로가기
Database/Oracle

[ORACLE] CLU 뷰 완전 해설 : CLUSTERS 구조 파악의 핵심 포인트와 실무 활용

by Papa Martino V 2025. 10. 10.
728x90

CLU
[ORACLE] CLU

1. 개요

CLU는 Oracle Database의 내부 객체 관리 구조 중 클러스터(Cluster) 관련 정보를 담고 있는 시스템 단위로, 테이블 저장 구조의 최적화를 위해 설계된 개념입니다. Oracle의 데이터 저장 효율성을 극대화하기 위한 구조 중 하나로, 테이블들이 공통 키를 공유할 때 하나의 데이터 블록을 공동으로 사용하는 형태를 지원합니다. 즉, CLU(Cluster Unit)는 데이터 접근 성능을 향상시키기 위한 기본 단위로 이해할 수 있습니다.

2. 클러스터(CLUSTER)의 개념

클러스터는 비슷한 특성을 가진 테이블들이 동일한 데이터 블록을 공유하도록 하여 디스크 I/O를 줄이고, 쿼리 응답 속도를 높이는 데 목적이 있습니다. 이를 통해 조인 성능 향상공간 절약이 동시에 이루어집니다.

Oracle에서는 클러스터 구조를 관리하기 위해 DBA_CLUSTERS, ALL_CLUSTERS, USER_CLUSTERS 등의 뷰를 제공합니다. 여기서 “CLU”는 이러한 클러스터 관리 체계의 핵심 축을 의미하며, 데이터 사전에서 클러스터 단위로 구성된 오브젝트의 메타데이터를 관리합니다.

3. 클러스터 관련 주요 데이터 딕셔너리 뷰

뷰 이름 용도 설명
DBA_CLUSTERS DBA 전용 모든 사용자 클러스터 정보 조회
ALL_CLUSTERS 일반 사용자 접근 권한이 있는 클러스터 정보 조회
USER_CLUSTERS 소유자 자신이 소유한 클러스터 정보 조회
DBA_CLU_COLUMNS 컬럼 단위 클러스터 키에 사용되는 컬럼 정보
DBA_CLUSTER_HASH_EXPRESSIONS HASH 기반 클러스터 클러스터 해시 알고리즘과 표현식 관리

4. CLU 구조의 역할

CLU는 단순히 테이블 묶음 이상의 의미를 갖습니다. 실제로 Oracle 내부에서는 공유 저장 블록을 중심으로 데이터를 그룹화하며, 다음과 같은 이점을 제공합니다:

  • 공통 키 기반 저장: 동일한 키 값을 가진 여러 테이블의 로우가 같은 데이터 블록에 저장됩니다.
  • I/O 최소화: 한 번의 블록 읽기로 여러 테이블의 데이터를 동시에 접근할 수 있습니다.
  • 조인 효율성 향상: 클러스터링 키를 기준으로 조인 시 디스크 접근 횟수가 현저히 줄어듭니다.
  • 공간 효율화: 인덱스와 블록 중복이 줄어 전체 데이터 파일 크기가 감소합니다.

5. CLU와 일반 테이블의 비교

아래 표는 클러스터(CLUSTER)와 일반 테이블의 저장 구조 차이를 정리한 것입니다.

구분 일반 테이블 클러스터(CLUSTER)
저장 구조 각 테이블이 독립 블록에 저장 공통 키 기준으로 동일 블록에 저장
조인 시 접근 다중 블록 I/O 발생 공유 블록 접근으로 단일 I/O
공간 효율성 낮음 (중복 데이터 존재) 높음 (공유 구조)
적용 대상 비정규화 또는 단일 테이블 위주 자주 조인되는 테이블 집합
관리 난이도 단순 중간 이상 (정의 및 유지보수 필요)

6. CLU 생성 예시

-- 1) 클러스터 생성
CREATE CLUSTER emp_dept_cluster (deptno NUMBER(4))
SIZE 1024;

-- 2) 클러스터에 테이블 추가
CREATE TABLE dept (
  deptno NUMBER(4) PRIMARY KEY,
  dname  VARCHAR2(14),
  loc    VARCHAR2(13)
)
CLUSTER emp_dept_cluster(deptno);

CREATE TABLE emp (
  empno NUMBER(4) PRIMARY KEY,
  ename VARCHAR2(10),
  job   VARCHAR2(9),
  deptno NUMBER(4)
)
CLUSTER emp_dept_cluster(deptno);

-- 3) 클러스터 인덱스 생성
CREATE INDEX idx_emp_dept_cluster
ON CLUSTER emp_dept_cluster;

위 예시에서 deptemp 테이블은 동일한 deptno 키를 기준으로 클러스터링되어, 조인 시 하나의 블록 I/O만으로 데이터를 효율적으로 접근할 수 있습니다.

7. HASH CLUSTER와 INDEX CLUSTER

Oracle은 클러스터를 두 가지 방식으로 관리합니다.

구분 HASH CLUSTER INDEX CLUSTER
접근 방식 해시 함수를 통한 직접 주소 접근 인덱스를 통한 키 기반 접근
성능 특징 키 기반 검색이 매우 빠름 범위 검색, 비정형 검색에 유리
설정 복잡도 HASHKEYS, SIZE 등 추가 파라미터 필요 상대적으로 단순
적용 사례 고정 키 기반 트랜잭션 시스템 조인 중심의 DW/OLAP 환경

8. CLU 관련 관리 포인트

  • 공간 관리: 클러스터는 초기 SIZE와 STORAGE 파라미터 설정이 중요합니다.
  • 통계 수집: DBMS_STATS 패키지로 클러스터 통계를 주기적으로 갱신해야 옵티마이저가 올바른 실행 계획을 선택합니다.
  • 재구성: 테이블 확장 후 클러스터 재정의가 필요할 수 있습니다.
  • 모니터링: V$SEGMENT_STATISTICS 또는 DBA_SEGMENTS를 통해 블록 활용도를 점검합니다.

9. 성능 관점의 CLU 활용

클러스터는 조인 성능 최적화에 특히 효과적입니다. 예를 들어, 부서별 사원 정보를 반복적으로 조회하는 ERP 시스템에서는 EMP와 DEPT 테이블을 클러스터로 묶어 캐시 히트율을 높이고, 디스크 읽기 횟수를 절반 이하로 줄일 수 있습니다.

다만, 데이터 변경이 잦은 트랜잭션 시스템에서는 클러스터 재배치로 인한 오버헤드가 발생할 수 있으므로 업무 특성에 따라 HASH CLUSTERINDEX CLUSTER를 구분 적용해야 합니다.

10. 결론

CLU는 Oracle의 내부 저장 구조 중 가장 오래되었지만 여전히 강력한 성능 최적화 기법입니다. 데이터베이스 설계 단계에서 조인 빈도, I/O 패턴, 데이터 안정성을 고려하여 적절히 활용한다면, 단순 인덱스 튜닝보다 더 큰 효과를 얻을 수 있습니다. 특히, OLTP 시스템보다는 OLAP·보고형 시스템에서 공통 키 기반 데이터 접근이 빈번한 경우 매우 유용합니다.

11. 참고 출처

  • Oracle Database 19c Concepts – Chapter 7: Data Structures
  • Oracle DBA Guide – Managing Clusters (Doc ID 130981.1)
  • Oracle 23ai Official Documentation – Cluster Objects and Storage Management

추천 태그: ORACLE, CLU, CLUSTER, DBA_CLUSTERS, HASH_CLUSTER, INDEX_CLUSTER, DATABASE_OPTIMIZATION

728x90