一、自動工作負載庫(Automatic Workload Repository,AWR)
自動工作負載庫(Automatic Workload Repository,AWR)是在Oracle公司提供的一個工具。AWR來可以自動收集、處理、並保存性能統計結果,這種統計數據存放在內存中並隨后存儲在數據庫中,這些數據既能在報告中顯示也可以通過視圖查詢。可以協助我們找出Oracle的性能瓶頸。
AWR收集和處理的統計數據包括:
- 對象統計,用於確定數據庫段(表、索引…)的訪問情況
- 基於時間的統計:數據庫活動統計,這些統計參數通過V$SYS_TIME_MODEL和V_SESS_TIME_MODEL 查詢;
- 系統統計:基於系統和會話的統計,這些統計數據可以通過V$SYSSTAT和V$SESSTAT 查詢。
- SQL統計:系統中造成高的負載的SQL,這些SQL使用了長的執行時間和CPU時間;
- 激活會話歷史(ASH)統計:激活會話信息的歷史記錄,記錄了最近的會話活動歷史
AWR將每小時自動抓取一次性能統計數據,並將抓取的性能快照記錄在工作載荷記錄的代理表中。AWR快照也可以人工創,只是通常不必要這樣做。快照抓取后,抓取的結果將由自動數據庫診斷監視器( ADDM )分析。
在AWR抓取SQL信息時,AWR將比較以前抓取的SQL語句對性能的影響,並據此有目的的捕捉SQL語句,因此這樣的做法減少了需要捕捉的SQL語句。
自動工作負載庫(AWR)快照將存儲在數據庫中,這需要存儲空間,其存儲空間占用取決於下面的幾個因素:
- 當前連接Oralce的激活會話的數目,數目越多,則AWR信息越多;
- AWR快照抓取間隔,默認一小時抓取一次。抓取頻率增加,則存儲空間占用越多。
- 歷史數據的保持期限。顯然,保留時間越長,空間占用越多。
缺省的快照捕捉間隔為每小時一次,記錄在數據庫中保存7天。調整自動工作負載庫(AWR) 的快照間隔和保持時期,則其空間占用將降低。但當減少保持期時,例如自動數據庫診斷監視器(ADDM)、SQL調節顧問、重做顧問、段顧問等。
為了統計結果盡可能客觀、盡可能反映真正的業務載荷分布情況,我們最好將AWR保持期延伸到業務系統運行的一個完整周期。例如,如果業務系統的作業特點是周一到周五作業務,周六、日進行報表操作,則7天是你完整的一個工作周期。同理,你的工作周期可能是一個月,一個季度。由於存儲介質的造價在目前的數據庫系統環境中已經算是很小的一部分,因此,AWR統計的存儲代價並不很高,以存儲至少一個業務周期為宜。
1、AWR的啟用
默認情況下Oralce啟用數據庫統計收集功能,可使用
SQL> show parameter statistics_level
NAME TYPE VALUE
statistics_level string TYPICAL
如果statistics_level的值為TYPICAL或者ALL,表示啟用AWR; 如果statistics_level的值為BASIC,表示禁用AWR
2、查看當前的AWR保存策略
select * from dba_hist_wr_control; DBID,SNAP_INTERVAL,RETENTION,TOPNSQL 860524039,+00 01:00:00.000000,+07 00:00:00.000000,DEFAULT
以上結果表示,每小時產生一個SNAPSHOT,保留7天
調整AWR產生snapshot的頻率和保留策略,如:如將收集間隔時間改為30 分鍾一次。並且保留5天時間(注:單位都是為分鍾):
dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);
3、手工創建一個快照
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
4、查看快照
select * from sys.wrh$_active_session_history
5、產生AWR報告
AWR報告其實就是一張數據庫健康體檢表,它顯示了數據庫健康的各項指標需要sysdba權限
1.生成整個數據庫的AWR 報告:
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
2.生成 Oracle RAC AWR 報告:
@$ORACLE_HOME/rdbms/admin/awrgrpt.sql
3.生成 RAC 環境中特定數據庫實例的 AWR 報告:
@$ORACLE_HOME/rdbms/admin/awrrpti.sql
4.生成 Oracle RAC 環境中多個數據庫實例的 AWR 報告的方法:
@$ORACLE_HOME/rdbms/admin/awrgrpti.sql
5.生成 SQL 語句的 AWR 報告: @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql
6.生成特定數據庫實例上某個 SQL 語句的 AWR 報告:
@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql
--生成 AWR 時段對比報告
7.生成單實例 AWR 時段對比報告
@$ORACLE_HOME/rdbms/admin/awrddrpt.sql
9.生成 Oracle RAC AWR 時段對比報告
@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql
生成AWR的全過程:



二、性能檢測器 (Automatic Database Diagnostic Monitor ADDM)
http://www.cnblogs.com/hibernate315/archive/2010/05/28/2399259.html
