Oracle 데이터베이스에서 도메인 인덱스(Domain Index)는 사용자 정의 로직으로 검색 동작을 확장할 수 있게 해주는 매우 강력한 기능입니다. 이러한 인덱스를 사용하려면 연산자(Operator)와 이를 구현하는 인덱스 타입(Index Type) 간의 연결이 필요하며, 이 관계를 정의하고 조회할 수 있는 시스템 뷰가 바로 ALL_INDEXTYPE_OPERATORS
입니다.
1. ALL_INDEXTYPE_OPERATORS란?
ALL_INDEXTYPE_OPERATORS는 현재 사용자가 접근할 수 있는 모든 인덱스 타입과 연관된 연산자 목록을 보여주는 Oracle의 데이터 딕셔너리 뷰입니다. 주로 도메인 인덱스 설계나 Oracle Text, Spatial, XML 검색을 위한 사용자 정의 연산자(operator) 지원 여부 확인에 활용됩니다.
주요 기능
- 인덱스 타입이 어떤 연산자를 지원하는지 확인
- 도메인 인덱스 생성 전 연산자 등록 여부 점검
- 인덱스 연산자의 재사용 여부 검토
2. 주요 컬럼 설명
컬럼명 | 설명 |
---|---|
INDEXTYPE_NAME | 인덱스 타입의 이름 (예: CONTEXT, SPATIAL_INDEX 등) |
INDEXTYPE_OWNER | 해당 인덱스 타입을 소유한 사용자 |
OPERATOR_NAME | 연산자의 이름 (예: CONTAINS, SDO_WITHIN_DISTANCE 등) |
OPERATOR_OWNER | 연산자를 정의한 사용자 |
3. 실무 활용 예시
Oracle Text에서 사용하는 CONTEXT 인덱스 타입이 어떤 연산자를 지원하는지 확인하고 싶다면 다음과 같은 SQL을 사용할 수 있습니다.
SELECT
indextype_name,
operator_name
FROM
ALL_INDEXTYPE_OPERATORS
WHERE
indextype_name = 'CONTEXT';
이 쿼리는 Oracle Text가 지원하는 CONTAINS
, SCORE
같은 연산자 목록을 반환합니다. 이를 통해 검색 조건 설계나 쿼리 최적화 시 올바른 연산자 선택이 가능합니다.
4. 관련 뷰 비교
뷰 이름 | 설명 | 특징 |
---|---|---|
ALL_INDEXTYPES | 접근 가능한 인덱스 타입 목록 | 도메인 인덱스 타입 정보 조회 |
ALL_OPERATORS | 연산자 자체 정의 목록 | 연산자의 인풋/아웃풋 타입 정보 포함 |
ALL_INDEXTYPE_OPERATORS | 인덱스 타입과 연산자의 연결 정보 | 실제 검색 가능 연산자 여부 확인에 사용 |
5. 대표적인 연산자 및 인덱스 타입 예시
INDEXTYPE_NAME | OPERATOR_NAME | 사용 분야 |
---|---|---|
CONTEXT | CONTAINS | Oracle Text (전체 텍스트 검색) |
SPATIAL_INDEX | SDO_WITHIN_DISTANCE | 공간 좌표 기반 거리 검색 |
SPATIAL_INDEX | SDO_FILTER | 공간 데이터 필터링 |
XMLINDEX | EXISTSNODE | XML 데이터 노드 탐색 |
6. 실무 팁
- 사용자 정의 인덱스 타입 개발 시: 연산자 등록 여부를 먼저 ALL_INDEXTYPE_OPERATORS에서 확인
- Oracle Text 또는 Spatial 사용 시: 연산자-인덱스 연계가 잘못되면 오류 발생
- DB 성능 튜닝: 연산자 지원 여부에 따라 인덱스 스캔 방식이 달라짐
- 보안 정책 설계: 특정 연산자의 사용을 제한하려면 인덱스 타입별로 관리
7. 보안 및 권한 관리
이 뷰는 사용자가 SELECT 권한을 가진 인덱스 타입 또는 연산자에 대해서만 정보를 제공합니다. 전체 인덱스-연산자 연결 관계를 확인하려면 DBA 권한이 필요하며, 해당 경우 DBA_INDEXTYPE_OPERATORS
뷰를 사용하면 됩니다.
8. 결론
ALL_INDEXTYPE_OPERATORS
뷰는 Oracle 데이터베이스에서 도메인 인덱스와 연산자 간의 연결 정보를 확인할 수 있는 핵심적인 메타데이터 뷰입니다. 복잡한 텍스트, 공간, XML 처리 로직을 구현하는 개발자 또는 DBA라면 이 뷰를 적극적으로 활용해 검색 성능과 정확도를 높일 수 있습니다.
출처
- Oracle Database 19c Application Developer's Guide - Indexes
- Oracle Text Reference - 공식 문서
- Oracle Spatial and Graph Developer's Guide
- 2020~2025년 복합검색 시스템 구축 실무 경험
'Database' 카테고리의 다른 글
[Oracle] 오라클 ALL_LOBS 뷰 완전정복 : 개념, 활용 예제, 성능 팁까지 (0) | 2025.06.23 |
---|---|
[Oracle] 오라클 ALL_IND_SUBPARTITIONS 뷰 완전 분석 (0) | 2025.06.23 |
[Oracle] 오라클 ALL_INDEXTYPES 뷰 완전 정복 (0) | 2025.06.23 |
[Oracle] 오라클 ALL_DIRECTORIES 뷰 완전 정리 (0) | 2025.06.23 |
[ Oracle] 오라클 ALL_DIM_LEVEL_KEY 뷰 실무 완전 해석 (0) | 2025.06.23 |