Automatic Workload Repository,簡稱AWR,Oracle10g下提供的一種性能收集和分 析工具 ,每60分鐘采集 一次 快照 ,存 儲著近 期一段時間內(默認 是7天)數據庫活動的詳細信息。
ASH(Active Session History),以V$SESSION為基礎,每秒采樣一次,記錄活動會話等待的事件,不活動的會話不會采樣 。ASH更注重Session的Event跟蹤 。在實際生產環境 ,Oracle的等待事件是瞬息萬 變的,AWR可能分 析不到最 近五 到十分鐘的性能數據,所以可以通過ASH分析最近的會話活動。ASH 內存 記錄數據 始終是有 限的,ASH buffers 的最 小值 為1MB,*** 值不超過30MB.為了 保存歷史 數據, 引入了AWR。ASH信息 同樣被采集 寫入到AWR負載庫中。 由于內存不是足夠的,所以MMNL進程在ASH寫滿后會將 信息 寫出到AWR負載庫中。
Automatic Database Diagnostic Monitor ,簡稱ADDM,Oracle內部的一個顧問系統,能夠自動的完成最數據庫的一些優化的建 議,給出SQL的優化, 索引 的創建,統計量的收集 等建議。
ASH報告生成:$ORACLE_HOMESQL>@C:appmajbproduct .2.0dbhome_1RDBMSADMINashrpt.sql
AWR報告生成:SQL>C:appmajbproduct .2.0dbhome_1RDBMSADMINawrrpt.sql
ADDM報告生成:SQL>C:appmajbproduct .2.0dbhome_1RDBMSADMINaddmrpt.sql
綜上:如果在一個小時以內發生 的我們可以通過生成ASH報告 來找出和性能相關的等待事件和SQL語句 。如果 是1小時以上或幾天 我們可以通過AWR報告來找出幾小時幾天以來最 影響系統的等待事件和SQL語句。ADDM報告基于AWR,默認可以保存30天的ADDM報告
動手實驗:AWR報告的生成
在實際的生 產環境 中,AWR除了由Oracle自動生成,也可以通過DBMS_WORKLOAD_REPOSITORY包來 手工創建。
1.手工創建一個數據庫快照snapshotSQL> exec dbms_workload_repository.create_snapshot();
2. 生成AWR報告: 依賴一個SQL腳本:X:oracleproduct.2.0db_1RDBMSAdminawrrpt.sql
SQL>@C:appmajbproduct .2.0dbhome_1RDBMSADMINawrrpt.sql
3. 找到AWR報告分析性能瓶頸
4. 補充:通過SQL獲取ASHAWRADDM報告
Oracle AWR 補充: