首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g 自動工作負載儲存庫 (AWR) 深度解析

     編輯:Oracle 資料庫基礎

AWR 簡介

Oracle Database 10g 內建 自動工作負載儲存庫 (AWR),不僅蒐集統計資料,更導出效能度量,主動追蹤潛在問題。安裝即啟用,零配置。

快速體驗:產生 AWR 報表

執行 $ORACLE_HOME/rdbms/admin/awrrpt.sql,介面類似 Statspack,可選擇兩個快照編號產生文字或 HTML 格式報表(含超連結導航),極易閱讀。

架構與實作細節

背景進程 MMON

由 MMON (Manageability Monitor) 及其從進程每小時自動擷取快照(可調整),資料保留 7 天(可修改)。查看目前設定:

SELECT SNAP_INTERVAL, RETENTION FROM DBA_HIST_WR_CONTROL;
-- 結果範例:+00000 01:00:00.0  |  +00007 00:00:00.0

修改為 20 分鐘擷取、保留 2 天:

BEGIN
  DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
    INTERVAL => 20,
    RETENTION => 2*24*60  -- 分鐘
  );
END;

儲存結構

  • 資料儲於 SYSAUX 表空間的 SYS 綱要下
  • 中繼資料表:WRM$_*;歷史統計表:WRH$_*
  • 對應視圖前綴 DBA_HIST_*,如 DBA_HIST_SYSMETRIC_SUMMARY

查詢所有 AWR 視圖:

SELECT VIEW_NAME FROM USER_VIEWS WHERE VIEW_NAME LIKE 'DBA\_HIST\_%' ESCAPE '\';

度量定義與查詢範例

DBA_HIST_METRIC_NAME 定義度量名稱、群組、單位。例如 CPU Usage Per Sec(單位:CentiSeconds Per Second)。結合 DBA_HIST_SYSMETRIC_SUMMARY 可分析 CPU 消耗趨勢:

SELECT BEGIN_TIME, INTSIZE, NUM_INTERVAL, MINVAL, MAXVAL, AVERAGE, STANDARD_DEVIATION
FROM DBA_HIST_SYSMETRIC_SUMMARY WHERE METRIC_ID = 2075;

標準差輔助判斷平均值代表性:標準差遠大於平均值時,平均值失真。

自動資料庫診斷監控器 (ADDM)

ADDM 在每次快照後自動分析 AWR 資料,識別效能瓶頸(如 Buffer Busy Waits),定位問題段(索引/表),並給出具體建議(重建索引、調整儲存參數、啟用自動段空間管理等)。實現 24/7 自動化診斷,釋放 DBA 專注策略性工作。

檢視建議與警報

  • Enterprise Manager 10g Console → Database Home 頁面查看 ADDM 建議與 AWR 報表
  • 伺服器生成警報推送至 Advanced Queuing,EM 10g 突顯顯示

時間模型

透過 V$SYS_TIME_MODEL 觀察資料庫時間花費分佈(DB Time、DB CPU、Parse Time、SQL Execute Time 等),快速定位效能消耗熱點。

SELECT STAT_NAME, VALUE FROM V$SYS_TIME_MODEL;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved