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