Oracle 21c에 OATS 기능이 추가되었습니다. OATS(Object Activity Tracking System)는 데이터베이스 객체와 관련된 다양한 유형의 Activity에 대한 정보를 제공하는 RDBMS 기반 추적 서비스입니다. Activity는 테이블 스캔이나 로딩처럼 사용자나 시스템이 수행한 작업을 나타냅니다. 대부분의 Activity은 15분 동안 테이블을 스캔한 횟수와 같이 빈도(즉, 고정된 시간 간격에 따른 횟수)의 형태로 추적됩니다.
Object Activity Tracking System (OATS) is a generic RDBMS based tracking service that provides information about various types of activities associated with different database objects. An activity represents a user or system-initiated action such as scanning or loading a table. Most of the activities are tracked in the form of frequencies (i.e. counts over fixed time intervals) such as the number of scans of a table in 15 minutes.
OATS는 DBMS_ACTIVITY 패키지로 관리됩니다. 아래 CONFIGURE 프로시저로 OATS 동작을 설정할 수 있습니다.
DBMS_ACTIVITY.CONFIGURE (
PARAMETER_NAME IN VARCHAR2
, PARAMETER_VALUE IN NUMBER
, CON_DBNAME IN VARCHAR2 := NULL
);
CONFIGURE 프로시저의 parameter_name과 parameter_value 매개변수에 아래의 값을 설정할 수 있습니다.
- ACTIVITY_INTERVAL_MINUTES: Activity 정보가 플러시 및 초기화되기 전까지 Activity 정보를 유지하는 간격(분) (기본값은 15분, 설정 값은 30, 60, 120, 180, 240, 360, 480, 720, 1440)
- ACTIVITY_RETENTION_DAYS: Activity 정보를 삭제하기 전까지 유지할 일수 (기본값은 400일, 설정 범위는 8 ~ 2000)
- ACTIVITY_SPACE_PERCENT: Activity 정보를 저장하기 위한 SYSAUX 공간의 퍼센트 단위 제한 (기본값은 5, 설정 범위는 1 ~ 25)
아래 CREATE_SNAPSHOT 프로시저로 스냅샷을 생성할 수 있습니다.
DBMS_ACTIVITY.CREATE_SNAPSHOT(
ALL_INSTANCES IN BOOLEAN := TRUE
, CON_DBNAME IN VARCHAR2 := NULL
);
아래 DELETE_SNAPSHOT 프로시저로 스냅샷을 삭제할 수 있습니다.
DBMS_ACTIVITY.DELETE_SNAPSHOT (
BEFORE_SNAP_ID IN NUMBER
, CON_DBNAME IN VARCHAR2 := NULL
);
DBMS_ACTIVITY.DELETE_SNAPSHOT (
BEFORE_TIME IN TIMESTAMP
, CON_DBNAME IN VARCHAR2 := NULL
);
아래는 OATS와 관련된 정적 딕셔너리 뷰입니다.
- DBA_ACTIVITY_CONFIG: 설정 파라미터 정보
- DBA_ACTIVITY_SNAPSHOT_META: Activity 스냅샷 정보
- DBA_ACTIVITY_TABLE: 테이블 Activity 스냅샷
- DBA_ACTIVITY_MVIEW: MView Activity 스냅샷
아래 쿼리로 t1 테이블이 마지막으로 스캔된 시점을 확인할 수 있습니다.
SELECT *
FROM dba_activity_table
WHERE table_name = 'T1'
AND scans > 0
ORDER BY snap_id DESC
FETCH FIRST 1 ROW ONLY;
Oracle 23ai에 OATS와 관련된 아래의 동적 성능 뷰가 추가되었습니다. Oracle 21c는 X$KSXMME, X$KSXM_MAE 테이블을 직접 조회해야 합니다.
- V$ACTIVITY_TABLE: 현재 생성 중인 테이블 Activity 스냅샷 (X$KSXMME)
- V$ACTIVITY_MVIEW: 현재 생성 중인 Mview Activity 스냅샷 (X$KSXM_MAE)
아래는 OATS와 관련된 파라미터입니다.
NAME TYPE VALUE DESCRIPTION
------------------------------- ---- ----- -----------------------------------------------------------
_object_activity_tracking 1 TRUE enable object activity tracking system (OATS)
_object_activity_control 3 0 controls tracing for object activity tracking system (OATS)
_object_activity_disable 3 0 disables some object activity tracking (OATS)
[2024-07-31]
Oracle 23ai에 *_TABLE_ACCESS_STATS 뷰와 V$TABLE_ACCESS_STATS 뷰가 추가되었습니다.