DBMS_ACTIVITY 패키지 개요
DBMS_ACTIVITY
패키지는 Oracle 데이터베이스 내에서 발생하는 다양한 활동을 추적하고 모니터링하는 데 사용되는 강력한 도구입니다. 이 패키지를 사용하면 데이터베이스 성능을 분석하고 병목 현상을 식별하여 튜닝 전략을 수립하는 데 도움이 됩니다. 특히 객체 활동 추적 시스템(OATS)을 통해 수집된 정보를 제어하는 기능을 제공합니다.
주요 기능 및 활용 사례
- 데이터베이스 활동 추적: 테이블, 인덱스, 뷰와 같은 데이터베이스 객체에 대한 삽입, 업데이트, 삭제, 테이블 스캔 등 다양한 활동을 추적합니다.
- 성능 분석: 추적된 활동 데이터를 기반으로 성능 병목 지점을 식별하고 튜닝 기회를 찾습니다.
- 리소스 사용량 모니터링: 특정 객체에 대한 리소스 사용량을 모니터링하여 비효율적인 리소스 소비 패턴을 파악합니다.
- 튜닝 전략 수립: 성능 분석 결과를 바탕으로 인덱스 생성, 파티셔닝, 쿼리 튜닝 등 데이터베이스 튜닝 전략을 수립합니다.
DBMS_ACTIVITY 서브프로그램
DBMS_ACTIVITY
패키지는 OATS 설정을 구성하고, 스냅샷을 관리하는 데 사용되는 여러 서브프로그램을 제공합니다. 다음은 주요 서브프로그램입니다.
- CONFIGURE 프로시저: OATS의 구성 파라미터를 설정합니다.
- CREATE_SNAPSHOT 프로시저: 활동 정보 스냅샷을 수동으로 생성합니다.
- DELETE_SNAPSHOT 프로시저: 특정 스냅샷을 삭제합니다.
- DELETE_SNAPSHOTS 프로시저: 특정 시간 이전의 모든 스냅샷을 삭제합니다.
CONFIGURE 프로시저 상세 설명
CONFIGURE
프로시저는 OATS의 동작을 제어하는 다양한 파라미터를 설정하는 데 사용됩니다. 다음은 주요 파라미터입니다.
- PARAMETER_NAME: 설정할 구성 파라미터의 이름입니다. 예를 들어
ACTIVITY_INTERVAL_MINUTES
,ACTIVITY_RETENTION_DAYS
등이 있습니다. - PARAMETER_VALUE: 설정할 구성 파라미터의 값입니다.
- 파라미터 목록:
- ACTIVITY_INTERVAL_MINUTES: 활동 정보를 유지하는 간격(분).
- ACTIVITY_RETENTION_DAYS: 활동 정보를 유지하는 일수.
- ACTIVITY_SPACE_BUDGET: 활동 정보를 저장하는 데 사용할 공간의 제한 (퍼센트).
CONFIGURE 프로시저 사용 예시
EXEC DBMS_ACTIVITY.CONFIGURE(
PARAMETER_NAME => 'ACTIVITY_INTERVAL_MINUTES',
PARAMETER_VALUE => 15
);
EXEC DBMS_ACTIVITY.CONFIGURE(
PARAMETER_NAME => 'ACTIVITY_RETENTION_DAYS',
PARAMETER_VALUE => 400
);
위 예시는 활동 정보를 15분 간격으로 수집하고, 400일 동안 유지하도록 설정합니다.
스냅샷 생성 및 관리
CREATE_SNAPSHOT
프로시저를 사용하여 활동 정보의 스냅샷을 수동으로 생성할 수 있습니다. 스냅샷은 특정 시점의 활동 데이터를 저장하며, 이를 통해 과거의 데이터베이스 상태를 분석할 수 있습니다.
EXEC DBMS_ACTIVITY.CREATE_SNAPSHOT;
스냅샷이 더 이상 필요하지 않은 경우 DELETE_SNAPSHOT
또는 DELETE_SNAPSHOTS
프로시저를 사용하여 스냅샷을 삭제할 수 있습니다. DELETE_SNAPSHOTS
는 SYSAUX
테이블스페이스에서 디스크 공간을 확보하는데 사용됩니다.
EXEC DBMS_ACTIVITY.DELETE_SNAPSHOT(
DEFSNAP_SNAP_ID => 12345
);
EXEC DBMS_ACTIVITY.DELETE_SNAPSHOTS(
SERVICE_TIME => SYSTIMESTAMP - INTERVAL '30' DAY
);
위 예시는 DEFSNAP_SNAP_ID
가 12345인 스냅샷을 삭제하고, 30일 이전의 모든 스냅샷을 삭제합니다.
주의 사항
DBMS_ACTIVITY
패키지를 사용하려면SYS
사용자로 접속하거나, DBA 롤이 있어야 합니다.- OATS 기능은 CPU 리소스를 상당히 사용할 수 있으므로, 운영 환경에 미치는 영향을 고려하여 사용해야 합니다.