항목 | 사용법 |
---|---|
AWR 스냅샷 생성 | {code:sql} BEGIN DBMS_WORKLOAD.REPOSITORY.CREATE_SNAPSHOT (FLUSH_LEVEL=>'flush_level'); END; / |
dbms_workload_repository.create_snapshot(
flush_level IN VARCHAR2 DEFAULT 'TYPICAL')
RETURN NUMBER;
|
|AWR 스냅샷 삭제|{code:sql}
BEGIN
DBMS_WORKLOAD.REPOSITORY.DROP_SNAPSHOT_RANGE
(LOW_SNAP_ID=>snap_id, HIGH_SNAP_ID=>snap_id [, DBID->dbid]);
END;
/
dbms_workload_repository.drop_snapshot_Range(
low_snap_id IN NUMBER,
high_snap_id IN NUMBER
dbid IN NUMBER DEFAULT NULL);
|
AWR 스냅샷 설정 변겅 | {code:sql} BEGIN DBMS_WORKLOAD.REPOSITORY.MODIFY_SNAPSHOT_SETTINGS (RETENTION=>retention_time, INTERVAL=>interval_time, TOPNSQL=>topn_sql_number); END; / |
dbms_workload_repository.modify_snapshot_settings(
retention IN NUMBER DEFAULT NULL,
interval IN NUMBER DEFAULT NULL,
topnsql IN NUMBER DEFAULT NULL,
dbid IN NUMBER DEFAULT NULL);
dbms_workload_repository.modify_snapshot_settings(
retention IN NUMBER DEFAULT NULL,
interval IN NUMBER DEFAULT NULL,
topnsql IN VARCHAR2 DEFAULT NULL,
dbid IN NUMBER DEFAULT NULL);
|
|베이스라인 생성|{code:sql}
BEGIN
DBMS_WORKLOAD.REPOSITORY.CREATE_BASELINE
(START_SNAP_ID=>snap_id, END_SNAP_ID=>snap_id, BASELINE_NAME=>'baseline_name'[, DBID=>dbid]);
END;
/
dbms_workload_repository.create_baseline(
start_snap_id IN NUMBER,
end_snap_id IN NUMBER,
baseline_name IN VARCHAR2,
dbid IN NUMBER DEFAULT NULL)
RETURN NUMBER;
|
베이스라인 삭제 | {code:sql} BEGIN DBMS_WORKLOAD.REPOSITORY.DROP_BASELINE (BASELINE_NAME=>'baseline_name'[, CASCADE=>true | false], DBID=>dbid); END; / |
dbms_workload_repository.drop_baseline(
baseline_name IN VARCHAR2,
cascade IN BOOLEAN DEFAULT FALSE,
dbid IN NUMBER DEFAULT NULL);
Cascade
False : Drop baseline but not snapshots
True : Drops baseline and snapshots
|
h3. AWR 스냅샷 생성
* 원하는 시점에 awr 스냅샷을 수행 할 수 있다.
{code:sql}
-- TYPICAL 옵션으로 AWR 데이터 수집
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
-- ALL 옵션으로 AWR 데이터 수집
EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(FLUSH_LEVEL=>'ALL');
SELECT SNAP_ID, INSTANCE_NUMBER,
TO_CHAR(STARTUP_TIME, 'YYYYMMDD HH24:MI') INST_START,
TO_CHAR(BEGIN_INTERVAL_TIME, 'YYYYMMDD HH24:MI') BEGIN,
TO_CHAR(END_INTERVAL_TIME, 'YYYYMMDD HH24:MI') END,
SNAP_LEVEL
FROM DBA_HIST_SNAPSHOT
ORDER BY INSTANCE_NUMBER, SNAP_ID;
항목 | 의미 |
---|---|
SNAP_ID | AWR 스냅샷 번호 |
INSTANCE_NUMBER | AWR 스냅샷이 수행된 인스턴스 번호 |
STARTUP_TIME | 인스턴스가 시작된 시간 |
BEGIN_INTERVAL_TIME | 이전 스냅샷이 수행된 시간. 인스턴스가 시작된 후 처음 스냅샷이 수행되었다면 인스턴스 시작 시간 |
END_INTERVAL_TIME | AWR 스냅샷 수행 시간 |
SNAP_LEVEL | AWR 스냅샷 수행시 설정된 FLUSH_LEVEL(TYPICLA:1, ALL:2) |
BEGIN
DBMS_WORKLOAD.REPOSITORY.DROP_SNAPSHOT_RANGE
(LOW_SNAP_ID=>1, HIGH_SNAP_ID=>10);
END;
/
옵션 | 설명 |
---|---|
LOW_SNAP_ID | 삭제하려는 AWR 스냅샷의 시작 번호 |
HIGH_SNAP_ID | 삭제하려는 AWR 스냅샷의 마지막 번호 |
DBID | 데이터베이스 ID 지정. 기본값은 NULL, 이 경우 프로시저를 수행한 데이터베이스가 선택된다 |
BEGIN
DBMS_WORKLOAD.REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
(INTERVAL=>30, RETENTION=>60*24*60, TOPNSQL=>'100');
END;
/
-- 수행 주기 30분, 보관 기간 60일, 수집되는 상위 SQL수 100개로 변경
SELECT * FROM DBA_HIST_WR_CONTROL;
옵션 | 설명 | ||
---|---|---|---|
INTERVAL | 스냅샷 수행 주기를 분 단위로 지정. 기본값은 NULL, 이 경우 기존 설정 값이 유지, NUMBER 타입 변수 최소10분에서 최대 1년까지 지정, 0으로 설정할 경우에 AWR 스냅샷이 자동으로 수행되지 않는다. 0으로 설정한 경우 CREATE_SNAPSHOT() 프로시저를 이용한 수동 스냅샷도 수행할 수 없다. | ||
RETENTION | AWR 스냅샷 보관 기간을 분단위로 지정. 기본값은 NULL, 이 경우 기존 설정 값이 유지, NUMBER 타입 변수 최소 1일에서 최대 100년까지 지정. 0으로 설정할 경우에 영구적으로 보존 | ||
TOPNSQL | Elapse 시간, CPU 사용 시간, Parse Call 횟수, Sharable Memory, Version Count의 항목에 대해 각각 수집되는 SQL문의 수를 지정. 각 항목의 크기를 내림차순 정렬해서 설정한 개수만큼 저장, NUMBER타입 및 VARCHAR2 타입 변수, 기본값은 NULL, 이 경우 기존 설정값 유지 | 변수타입 | 설정 값 |
NUMBER | 최소 30개에서 최대 100,000,000개까지 지정 가능하다. | ||
VARCHAR2 | DEFAULT:기본 값으로 설정된다. AWR 통계 수집 레벨이 TYPICAL인 경우 30개, ALL인 경우 100개의 SQL이 저장된다. MAXIMUM:커서 캐시에 저장된 모든 SQL을 저장한다. 숫자:NUMBER 타입으로 지정한 것과 동일하게 사용된다. | ||
DBID | 데이터베이스 ID. 기본값은 NULL, 이 경우 프로시저를 수행한 데이터베이스가 선택된다 |
BEGIN
DBMS_WORKLOAD.REPOSITORY.CREATE_BASELINE
(START_SNAP_ID=>2004, END_SNAP_ID=>2006, BASELINE_NAME=>'BAD_BATCH', DBID=>1134139816);
END;
/
옵션 | 설명 |
---|---|
START_SNAP_ID | 기준 값 구간으로 지정할 시작 스냅샷 ID. NUMBER 타입 변수, 기본 값은 없다. |
END_SNAP_ID | 기준 값 구간으로 지정할 종료 스냅샷 ID. NUMBER 타입 변수, 기본 값은 없다. |
BASELINE_NAME | 베이스라인 이름 지정. VARCHAR2 타입 변수, 기본 값은 없다. |
DBID | 데이터베이스 ID. 기본값은 프로시저를 수행한 데이터베이스 ID |
BEGIN
DBMS_WORKLOAD.REPOSITORY.DROP_BASELINE
(BASELINE_NAME=>'BAD_BATCH', CASCADE=>true);
END;
/
SELECT * FROM DBA_HIST_BASELINE
옵션 | 설명 |
---|---|
BASELINE_NAME | 베이스라인 이름 지정. VARCHAR2 타입의 변수. 기본값은 없다. |
CASCADE | 삭제할 베이스라인의 스냅샷 구간으로 지정된 스냅샷 삭제 여부 지정. BOOLEAN 타입의 변수. TRUE 설정시 베이스라인에 해당하는 스냅샷도 같이 삭제. 기본값은 FALSE |
DBID | 데이터베이스 ID. 기본값은 프로시저를 수행한 데이터베이스 ID |