標籤:style blog http color 使用 os io strong
一、自動工作負載庫(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 VALUEstatistics_level string TYPICAL
如果statistics_level的值為TYPICAL或者ALL,表示啟用AWR; 如果statistics_level的值為BASIC,表示禁用AWR
2、查看當前的AWR儲存策略
select * from dba_hist_wr_control;DBID,SNAP_INTERVAL,RETENTION,TOPNSQL860524039,+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的全過程: