1、概述
AWR是Automatic Workload Repository 自動(dòng)工作負(fù)載庫(kù)的簡(jiǎn)稱(chēng),是Oracle 10g 版本推出的新特性。這個(gè)工具可以用來(lái)自動(dòng)采集Oracle運(yùn)行中的負(fù)載信息,通過(guò)對(duì)比兩次快照收集到的統(tǒng)計(jì)信息,來(lái)生成報(bào)表統(tǒng)計(jì)數(shù)據(jù),我們可以根據(jù)這些統(tǒng)計(jì)數(shù)據(jù)來(lái)分析一些潛在的問(wèn)題。
2、進(jìn)程
AWR由兩個(gè)后臺(tái)進(jìn)程根據(jù)設(shè)定時(shí)間自動(dòng)采集,分別是MMON(主進(jìn)程)和MMNL(為從進(jìn)程),MMON進(jìn)程負(fù)責(zé)執(zhí)行多種和管理相關(guān)的后臺(tái)任務(wù),MMNL負(fù)責(zé)執(zhí)行輕量級(jí)管理相關(guān)的后臺(tái)任務(wù)。
MMON 應(yīng)該是 Memory Monitor 的縮寫(xiě)
The memory monitor (MMON) process was introduced in 10g and is associated
with the Automatic Workload Repository new features used for automatic
problem detection and self-tuning. MMON writes out the required statistics
for AWR on a scheduled basis.
MMNL是 Memory Monitor Light (MMNL) 的縮寫(xiě)
The Memory Monitor Light (MMNL) process is a new process in 10g which works
with the Automatic Workload Repository new features (AWR) to write out full
statistics buffers to disk as needed.
3、AWR報(bào)告生成
通過(guò)調(diào)用@?/rdbms/admin/awrrpt.sql腳本來(lái)生成AWR報(bào)告,指定2個(gè)快照的Snap Id即可。


4、查看AWR的采樣間隔及保留時(shí)間
SQL> select * from dba_hist_wr_control;

5、AWR報(bào)告必讀部分
查看AWR報(bào)告頭信息
查看主機(jī)和實(shí)例的CPU使用情況
查看內(nèi)存使用情況
查看表空間的I/O性能情況
分析Top 10 Foreground Events by Total Wait Time
查看Load profile內(nèi)容
6、AWR報(bào)告頭部信息

Release:數(shù)據(jù)庫(kù)的版本信息。
RAC:是否為集群數(shù)據(jù)庫(kù),如果配置為集群數(shù)據(jù)庫(kù),還需要查看其他實(shí)例的AWR報(bào)告。
Platform:平臺(tái)信息,有些問(wèn)題跟特定平臺(tái)有關(guān) 。
CPUs/Cores/Sockets:邏輯CPU數(shù)/CPU Cores數(shù)/物理Sockets數(shù)
Memory(GB):物理內(nèi)存大小,單位GB。
Snap Time:AWR報(bào)告開(kāi)始快照和結(jié)束快照生成的時(shí)間,AWR報(bào)告的時(shí)間區(qū)間。
Sessions:AWR開(kāi)始快照和結(jié)束快照時(shí)實(shí)例當(dāng)時(shí)的會(huì)話(huà)數(shù)。
Elapsed:AWR報(bào)告跨越的計(jì)時(shí)時(shí)間。
DB Time:在AWR快照期間內(nèi)所有會(huì)話(huà)花費(fèi)在數(shù)據(jù)庫(kù)內(nèi)部的合計(jì)調(diào)用時(shí)間。
7、主機(jī)和實(shí)例CPU使用率

%Idle:主機(jī)在AWR報(bào)告期間內(nèi)平均的CPU空閑時(shí)間百分比。
%Total CPU:數(shù)據(jù)庫(kù)實(shí)例占用主機(jī)總的有效CPU時(shí)間百分比。
%Busy CPU:在主機(jī)非空閑CPU時(shí)間中,用于數(shù)據(jù)庫(kù)實(shí)例占用的百分比。
8、數(shù)據(jù)庫(kù)內(nèi)存使用情況

Host Mem(MB):主機(jī)的可用物理內(nèi)存。
SGA use(MB):SGA在開(kāi)始和結(jié)束快照時(shí)使用的內(nèi)存量。
PGA use(MB):PGA在開(kāi)始和結(jié)束快照時(shí)使用的內(nèi)存量。
% Host Mem used for SGA+PGA:SGA加PGA合計(jì)使用的內(nèi)存占物理內(nèi)存百分比。
注意:SGA加PGA合計(jì)使用的內(nèi)存占物理內(nèi)存百分比并不等同于ORACLE實(shí)例占用的總內(nèi)存量!
9、表空間IO使用情況

Reads : 指該表空間上發(fā)生的物理讀的次數(shù)(單位不是塊,而是次數(shù))。
Av Reads/s : 指該表空間上平均每秒的物理讀次數(shù) (單位不是塊,而是次數(shù))。
Av Rd(ms): 指該表空間上每次讀的平均讀取延遲。
Av Blks/Rd: 指該表空間上平均每次讀取的塊數(shù)目,因?yàn)橐淮挝锢碜x可以讀多個(gè)數(shù)據(jù)塊;如果 Av Blks/Rd>>1則可能系統(tǒng)有較多 db file scattered read。
Writes : 該表空間上發(fā)生的物理寫(xiě)的次數(shù)。
Av Writes/s : 指該表空間上平均每秒的物理寫(xiě)次數(shù)。
buffer Waits: 該表空間上發(fā)生 buffer busy waits 和 read by other session 的次數(shù)( 9i中 buffer busy waits 包含了 read by other session)。
Av Buf Wt(ms): 該表空間上發(fā)生 buffer Waits 的平均等待時(shí)間,單位為ms。
10、Top 10 Foreground Events by Total Wait Time

首先,關(guān)注Wait Class,優(yōu)先確認(rèn)是否有”Concurrency”類(lèi)型的等待事件。如果有類(lèi)型為“Concurrency”的等待事件,并且數(shù)據(jù)庫(kù)不空閑時(shí)通常就可以直接確定數(shù)據(jù)庫(kù)有性能問(wèn)題。否則,按Wait Class進(jìn)行分類(lèi)分析,使確定“數(shù)據(jù)庫(kù)是否存在性能問(wèn)題”變得相對(duì)容易,此例中,存在著Cluster、Commit和Application這三類(lèi)資源的等待事件。
11、查看Load profile內(nèi)容

Redo size:每秒/每事務(wù)產(chǎn)生的redo大?。▎挝蛔止?jié))。
Logical reads:每秒/每事務(wù)邏輯讀的大?。▎挝粔K)。
Block changes:描述數(shù)據(jù)塊的變化(單位塊)。
Physical reads: 物理讀(單位塊),即前臺(tái)session的花費(fèi)。
Physical writes: (單位塊)前臺(tái)session的花費(fèi),并不是一個(gè)衡量IO的指標(biāo),IO負(fù)載一般參考Instance Activity Stats中的。
Parses:每秒/每事務(wù)的SQL語(yǔ)句解析的次數(shù),包括軟解析+硬解析,parses超過(guò)每秒300表明可能有爭(zhēng)用問(wèn)題。
Hard parses:每秒/每事務(wù)硬解析的次數(shù),如果硬解析次數(shù)太高,說(shuō)明SQL重用率不高。避免硬解析的方法是盡可能的使用綁定變量,Hard Parses大于每秒100表明可能有爭(zhēng)用問(wèn)題。
Executes:每秒/每事務(wù)SQL執(zhí)行次數(shù),包括用戶(hù)執(zhí)行的SQL語(yǔ)句與系統(tǒng)執(zhí)行的SQL語(yǔ)句。
Rollbacks:回滾次數(shù),反應(yīng)回滾頻率。
Transactions:每秒產(chǎn)生的事物數(shù)。
第一次發(fā),如有錯(cuò)誤,歡迎大家留言指正,謝謝大家~




