DBAtlas · 데이터베이스 운영 아틀라스

두 기간 간 AWR diff(compare period) 보고서

Oracle성능

명령어

-- Interactive: @?/rdbms/admin/awrddrpt.sql   (RAC: awrgdrpt.sql)

-- From a script: period 1 (good) = <bid1>-<eid1>, period 2 (bad) = <bid2>-<eid2>
SET LINESIZE 8000 PAGESIZE 0 TRIMSPOOL ON HEADING OFF FEEDBACK OFF
SPOOL /tmp/awr_diff.txt
SELECT output
FROM   TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT(
         dbid1 => (SELECT dbid FROM v$database), inst_num1 => 1,
         bid1  => <bid1>, eid1 => <eid1>,
         dbid2 => (SELECT dbid FROM v$database), inst_num2 => 1,
         bid2  => <bid2>, eid2 => <eid2>));
SPOOL OFF
-- HTML: DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML

하는 일

두 스냅샷 범위를 나란히 놓고 DB time, 대기 이벤트, load profile, SQL별 통계의 백분율 차이를 보여 준다. "어제는 괜찮았는데 오늘은 느리다"에 직접 답한다.

사용 시점

업그레이드/패치, 파라미터 변경, 배포, 통계 수집 후 회귀 분석, 두 날의 같은 시간대 비교.

주의

Diagnostics Pack 라이선스가 필요하다. 비교 기간은 길이가 같고 워크로드가 비슷해야 하며, 그렇지 않으면 차이 값이 오해를 일으킨다. 서로 다른 데이터베이스(예: prod vs test)를 비교하려면 awrextr.sql/awrload.sql로 AWR 데이터를 옮기고 해당 dbid2를 지정한다.

DBAtlas에서 열기 →

관련 항목