본문 바로가기
Database

[Oracle] 오라클 ALL_IND_COLUMNS 완벽 가이드 : 인덱스 컬럼 조회와 실전 활용

by 코드개미 2025. 6. 16.

오라클 ALL_IND_COLUMNS 완벽 가이드: 인덱스 컬럼 조회와 실전 활용
[Oracle] ALL_IND_COLUMNS

 

Oracle에서 성능 최적화를 논할 때 빠질 수 없는 요소 중 하나가 바로 인덱스(Index)입니다. 효율적인 쿼리 성능을 위해 인덱스가 어떻게 구성되어 있는지를 정확히 이해하는 것은 매우 중요하며, 이때 필수적으로 활용되는 시스템 뷰가 바로 ALL_IND_COLUMNS입니다. 본 글에서는 Oracle의 ALL_IND_COLUMNS 뷰를 중심으로, 인덱스에 포함된 컬럼 정보를 조회하고 실무에서 활용할 수 있는 다양한 예제를 제공하며, 관련 뷰와의 차이점도 함께 설명합니다.

1. ALL_IND_COLUMNS란?

ALL_IND_COLUMNS는 사용자가 접근 가능한 인덱스에 대해 어떤 컬럼이 포함되어 있는지를 나타내는 뷰입니다. 해당 뷰를 통해 인덱스의 정렬 방식(ASC/DESC), 컬럼 순서 등을 확인할 수 있습니다.

2. 주요 컬럼 설명

컬럼명 설명
INDEX_NAME 인덱스의 이름
TABLE_NAME 인덱스가 속한 테이블 이름
TABLE_OWNER 테이블의 소유자
COLUMN_NAME 인덱스에 포함된 컬럼 이름
COLUMN_POSITION 인덱스 내 컬럼의 순서
DESCEND 정렬 순서 (ASC/DESC)

3. 관련 뷰 비교

뷰 이름 설명 비고
ALL_IND_COLUMNS 사용자가 접근 가능한 인덱스 컬럼 정보 컬럼 기준으로 상세 정보 확인
ALL_INDEXES 사용자가 접근 가능한 인덱스의 기본 정보 인덱스 속성 및 구조 정보
DBA_IND_COLUMNS DB 전체 인덱스 컬럼 정보 DBA 전용

4. 실무 활용 예제

4.1 특정 테이블의 인덱스 컬럼 목록 조회


SELECT INDEX_NAME, COLUMN_NAME, COLUMN_POSITION, DESCEND
FROM ALL_IND_COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES'
  AND TABLE_OWNER = 'HR';
  

4.2 인덱스별 구성 컬럼 파악


SELECT INDEX_NAME, LISTAGG(COLUMN_NAME, ', ') 
         WITHIN GROUP (ORDER BY COLUMN_POSITION) AS INDEX_COLUMNS
FROM ALL_IND_COLUMNS
WHERE TABLE_OWNER = 'HR'
GROUP BY INDEX_NAME;
  

4.3 DESC 정렬된 인덱스만 조회


SELECT INDEX_NAME, COLUMN_NAME, DESCEND
FROM ALL_IND_COLUMNS
WHERE DESCEND = 'DESC';
  

4.4 인덱스 컬럼과 인덱스 속성 조합 보기


SELECT a.INDEX_NAME, a.COLUMN_NAME, b.UNIQUENESS
FROM ALL_IND_COLUMNS a
JOIN ALL_INDEXES b
  ON a.INDEX_NAME = b.INDEX_NAME
WHERE a.TABLE_NAME = 'ORDERS';
  

5. 인덱스 컬럼 관리 전략

  • 정기적 인덱스 점검: 불필요한 인덱스를 제거하고 중복 인덱스를 식별합니다.
  • 쿼리 최적화 기반: 자주 사용하는 WHERE 절에 포함된 컬럼 위주로 인덱스를 설계합니다.
  • 복합 인덱스 확인: 컬럼 순서가 성능에 직접적인 영향을 미치므로 순서 분석은 필수입니다.
  • 통계 정보 갱신: 인덱스 관련 성능 향상을 위해 DB 통계 갱신을 주기적으로 수행합니다.

6. ALL_IND_COLUMNS 주요 활용 목적 요약

활용 목적 사용 쿼리 예시 설명
인덱스 성능 분석 WHERE 절 기반 SELECT 적절한 컬럼 인덱스 사용 확인
인덱스 설계 리뷰 LISTAGG + GROUP BY 복합 인덱스 컬럼 구성 확인
정렬 방식 확인 DESCEND 컬럼 확인 오름차순/내림차순 인덱싱 분석

7. 결론

Oracle에서 ALL_IND_COLUMNS 뷰는 성능 최적화 및 데이터 모델링 품질 향상을 위해 꼭 활용해야 할 필수 시스템 뷰입니다. 특히 ALL_INDEXES 뷰와의 조합은 인덱스 구조 분석과 불필요한 인덱스 제거에 매우 효과적입니다.

지속적인 인덱스 모니터링은 쿼리 성능 개선뿐만 아니라, 저장공간 절약과 유지보수 비용 절감에도 크게 기여합니다.

8. 참고자료