본문 바로가기
Database/Oracle

[ORACLE] DBA_CACHEABLE_TABLES_BASE 완벽 해설 : 캐시 정책의 기반 구조와 성능 최적화의 핵심

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

DBA_CACHEABLE_TABLES_BASE
[ORACLE] DBA_CACHEABLE_TABLES_BASE

 

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의 캐시 관리 메커니즘을 내부 레벨에서 통제하고, 보다 정밀한 성능 최적화와 리소스 효율화를 달성할 수 있습니다.


출처

728x90