
Oracle 데이터베이스의 캐시 메커니즘은 시스템 성능을 좌우하는 핵심 요소 중 하나입니다. 특히 DBA_CACHEABLE_TABLES_BASE 뷰는 캐시 가능한 테이블에 대한 기본 정의 정보를 제공하며, Oracle 내부에서 테이블 캐시 정책을 관리하는 데 기초가 되는 데이터 구조를 보여줍니다. 이 글에서는 이 뷰의 역할, 컬럼 구조, 활용 방법, 그리고 DBA_CACHEABLE_TABLES와의 차이점을 전문가 관점에서 상세히 설명합니다.
1. DBA_CACHEABLE_TABLES_BASE란?
DBA_CACHEABLE_TABLES_BASE는 Oracle Database에서 캐시(Cache) 속성이 설정된 테이블의 기본(원천) 메타데이터를 제공하는 딕셔너리 뷰입니다. 이 뷰는 DBA_CACHEABLE_TABLES의 기반이 되는 구조로, 내부적으로 SYS.TAB$ 등의 데이터 딕셔너리 테이블을 참조하여 캐시 정책의 원천 정의를 제공합니다. 즉, DBA_CACHEABLE_TABLES가 관리 편의성을 위한 상위 뷰라면, DBA_CACHEABLE_TABLES_BASE는 그 하위 기반 계층(Base Layer)을 담당하는 시스템 뷰입니다. DBA들은 이 뷰를 활용하여 캐시 설정이 실제 데이터 딕셔너리에 어떻게 반영되어 있는지를 직접 확인할 수 있습니다.
2. DBA_CACHEABLE_TABLES_BASE의 주요 컬럼 구조
| 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|
| OWNER# | NUMBER | 테이블 소유자의 내부 식별자 (USER$.USER# 참조) |
| OBJ# | NUMBER | 테이블 객체의 내부 오브젝트 ID |
| NAME | VARCHAR2(128) | 테이블의 이름 |
| CACHE | VARCHAR2(3) | 캐시 여부 (‘YES’, ‘NO’) |
| BUFFER_POOL | VARCHAR2(7) | 테이블이 사용하는 버퍼 풀 (KEEP, RECYCLE, DEFAULT) |
| PROPERTY | NUMBER | 테이블 속성 비트마스크 (Cache 관련 플래그 포함) |
| LAST_DDL_TIME | DATE | 테이블 속성이 마지막으로 변경된 시점 |
| CREATED | DATE | 테이블 생성 시각 |
| TABLESPACE_NAME | VARCHAR2(30) | 테이블이 속한 테이블스페이스 |
여기서 PROPERTY 컬럼은 Oracle 내부에서 캐시 관련 속성을 제어하는 중요한 플래그입니다. 이 값은 단순히 ‘YES/NO’ 수준이 아닌, 여러 상태(예: 병렬 캐시, 임시 캐시, 플래시백 캐시 등)를 비트 단위로 표현하기 때문에 고급 DBA 환경에서는 이를 통해 세밀한 성능 분석이 가능합니다.
3. DBA_CACHEABLE_TABLES_BASE의 역할과 특성
이 뷰의 주된 목적은 Oracle 데이터베이스 내부 구조상 “캐시 가능한 테이블”의 원천 정보를 제공합니다. 즉, DBA_CACHEABLE_TABLES 뷰가 관리자가 보기 쉽게 가공된 결과라면, DBA_CACHEABLE_TABLES_BASE는 내부 엔진이 참조하는 원본 데이터입니다.
- Oracle 내부의 캐시 설정 정보를 직접 반영
- 테이블 속성(Property Flag)을 기반으로 캐시 동작 여부 판별
- 버퍼 풀 정책(KEEP, RECYCLE, DEFAULT) 매핑 근거 제공
- DBA_CACHEABLE_TABLES 및 USER_CACHEABLE_TABLES의 기반 뷰 역할 수행
4. DBA_CACHEABLE_TABLES_BASE 조회 예제
SELECT OWNER#, OBJ#, NAME, CACHE, BUFFER_POOL, PROPERTY
FROM DBA_CACHEABLE_TABLES_BASE
WHERE CACHE = 'YES'
ORDER BY OWNER#, NAME;
위 쿼리를 통해 캐시가 활성화된 모든 테이블의 내부 오브젝트 ID, 소유자 ID, 속성값을 확인할 수 있습니다. 이를 통해 DBA는 캐시 설정이 실제 딕셔너리 구조에 반영되었는지 검증할 수 있습니다.
5. DBA_CACHEABLE_TABLES_BASE vs DBA_CACHEABLE_TABLES 비교
| 항목 | DBA_CACHEABLE_TABLES_BASE | DBA_CACHEABLE_TABLES |
|---|---|---|
| 데이터 출처 | 시스템 내부 테이블 (TAB$, OBJ$, USER$) | DBA_CACHEABLE_TABLES_BASE를 가공한 결과 |
| 정보 수준 | 내부 기술적 데이터 | 관리자 친화적 요약 정보 |
| 사용 목적 | DB 내부 캐시 구조 분석 | 운영 레벨 캐시 정책 점검 |
| 컬럼 구성 | OWNER#, OBJ#, PROPERTY 등 시스템 식별자 중심 | OWNER, TABLE_NAME 등 읽기 쉬운 정보 중심 |
| 사용 대상 | DBA, 성능 분석 전문가 | 운영 관리자, 시스템 모니터링 담당자 |
따라서 실무에서는 DBA_CACHEABLE_TABLES를 운영 모니터링에, DBA_CACHEABLE_TABLES_BASE를 딥 다이브 분석(Deep Dive Analysis)에 활용하는 것이 일반적입니다.
6. DBA_CACHEABLE_TABLES_BASE를 활용한 실무 분석 예시
① 캐시 정책 검증
데이터베이스 설정 후 ALTER TABLE … CACHE 명령이 실제 딕셔너리에 반영되었는지 검증할 때 유용합니다.
SELECT NAME, CACHE, PROPERTY FROM DBA_CACHEABLE_TABLES_BASE WHERE NAME = 'EMPLOYEES';
② 버퍼 풀 분류 분석
버퍼 풀별 테이블 분포를 파악해 메모리 효율성을 평가할 수 있습니다.
SELECT BUFFER_POOL, COUNT(*) AS TABLE_COUNT
FROM DBA_CACHEABLE_TABLES_BASE
GROUP BY BUFFER_POOL;
③ 캐시 설정 변경 추적
LAST_DDL_TIME 컬럼을 통해 캐시 정책 변경 이력을 추적하여 성능 저하 원인 분석 시 유용하게 사용할 수 있습니다.
7. DBA_CACHEABLE_TABLES_BASE의 성능 관리 활용
DBA_CACHEABLE_TABLES_BASE는 캐시 정책의 내부 근거 데이터로서 다음과 같은 관리 포인트를 제공합니다.
- 캐시된 객체의 물리적 속성을 분석하여 실제 캐시 효율성 검증
- KEEP/RECYCLE 풀 분포를 통해 메모리 리소스 재분배 근거 확보
- DDL 변경 시점 추적을 통한 캐시 정책 이력 관리
- PROPERTY 플래그를 통한 고급 캐시 제어 파악 (병렬 캐시 등)
8. DBA_CACHEABLE_TABLES_BASE와 연관된 주요 뷰
| 뷰 이름 | 설명 | 주요 목적 | 비고 |
|---|---|---|---|
| DBA_CACHEABLE_TABLES | 관리자 친화적 캐시 정보 뷰 | 운영 정책 점검 | BASE 뷰 기반 |
| V$DB_CACHE_ADVICE | 버퍼 캐시 히트율 예측 | 메모리 조정 시뮬레이션 | 캐시 용량 평가용 |
| DBA_SEGMENTS | 세그먼트 공간 정보 | 캐시 대상 테이블의 실제 크기 확인 | 스토리지 분석 |
| V$BH | Buffer Cache 내 블록 상태 | 실시간 캐시 블록 추적 | 운영 분석용 |
9. DBA_CACHEABLE_TABLES_BASE를 활용한 고급 튜닝 전략
① 캐시 유지 전략
자주 접근되는 소규모 테이블은 KEEP Pool로 유지하여 재파싱 비용을 최소화합니다.
ALTER TABLE HR.JOB_CODES STORAGE (BUFFER_POOL KEEP);
② 비활성 캐시 테이블 정리
CACHE 속성이 ‘NO’이지만 빈번히 참조되는 테이블을 찾아 캐시 정책을 수정하면 응답 속도를 개선할 수 있습니다.
SELECT NAME FROM DBA_CACHEABLE_TABLES_BASE
WHERE CACHE = 'NO' AND PROPERTY < 10;
③ PROPERTY 플래그 기반 최적화
PROPERTY 컬럼의 값이 높은 테이블은 캐시 제어 속성이 다중으로 적용된 것으로, 캐시 정책 간 충돌이 없는지 점검해야 합니다.
10. 결론
DBA_CACHEABLE_TABLES_BASE는 Oracle 캐시 관리의 근본적인 정보를 제공하는 핵심 시스템 뷰입니다. DBA_CACHEABLE_TABLES보다 한층 깊은 수준의 데이터를 제공하며, 메모리 캐시 구조 분석, 버퍼 풀 정책 검증, 그리고 성능 튜닝의 기초 자료로 활용됩니다. 이 뷰를 이해함으로써 DBA는 Oracle의 캐시 관리 메커니즘을 내부 레벨에서 통제하고, 보다 정밀한 성능 최적화와 리소스 효율화를 달성할 수 있습니다.
출처
- Oracle® Database Reference 19c - DBA_CACHEABLE_TABLES_BASE View
- Oracle® Performance Tuning Guide
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] DBA_CLUSTERS 완벽 해설 : 클러스터 기반 데이터 저장 구조와 성능 최적화 전략 (0) | 2025.10.13 |
|---|---|
| [ORACLE] DBA_CATALOG 완벽 해설 : 오라클 객체 관리의 핵심 메타데이터 뷰 (0) | 2025.10.13 |
| [ORACLE] DBA_CACHEABLE_TABLES 완벽 해설 : 캐시 가능한 테이블의 이해와 성능 최적화 전략 (0) | 2025.10.13 |
| [ORACLE] DBA_CACHEABLE_OBJECTS 완벽 해설 : 캐시 가능한 객체의 구조와 성능 최적화 전략 (0) | 2025.10.13 |
| [ORACLE] DBA_AUDIT_TRAIL 완벽 가이드 : 오라클 감사 로그의 핵심 구조와 활용법 (0) | 2025.10.13 |