關於AWR報告中幾個命中率指標的初步解釋
在拿到一份AWR效能報告後,通過分析AWR報告來定位資料庫效能問題時,在AWR報告的報告頭中,我們會看到類似如下的一些命中率指標:
Instance Efficiency Percentages [Target 100%]
Buffer Nowait %: | 99.87 | Redo NoWait %: | 99.95 |
Buffer Hit %: | 95.89 | In-memory Sort %: | 100.00 |
Library Hit %: | 86.87 | Soft Parse %: | 99.26 |
Execute to Parse %: | 91.37 | Latch Hit %: | 99.73 |
Parse CPU to Parse Elapsd %: | 53.78 | % Non-Parse CPU: | 98.18 |
那麼,這些關於Oracle記憶體的幾個關鍵指標以及Instance效率的幾個指標又該如何理解呢?
1 這幾個指標重要,但是通過這些命中率指標並非就可以定位到問題的關鍵所在。如上,我們看到各項指標基本都很高,除Parse CPU to Parse Elapsd %:只有53.78%之外,但是,該統計資料是來自於一則生產環境下出現嚴重效能問題的一個小時取樣資料。
2 分別對上述表格中各項指標作一初步解釋:
① Buffer Nowait %:表示會話向Database Buffer Cache【資料高速緩衝區】 申請1個快取時不等待的比例;
② Buffer Hit %:表示資料高速緩衝區的命中率,也叫Cache Hit Ratio。該指標要分實際業務系統型別來分析,如OLAP系統,該值可能為20%就算合理,而對於OLTP系統來講,理想值應該在90%以上。當然,並非該值達到100%就沒問題了,系統中可能依然難以避免物理讀等待。計算指令碼:
1 | SELECT (1 - (phys.value / (db.value + cons.value))) * 100 AS "Buffer Cache Hit Ratio" |
2 | FROM v$sysstat phys, |
3 | v$sysstat db, |
4 | v$sysstat cons |
5 | WHERE phys.name = 'physical reads' |
6 | AND db.name = 'db block gets' |
7 | AND cons.name = 'consistent gets'; |
③ Library Hit %:Library Cache Hit Ration【庫高速緩衝區命中率】,表示向共享池的Library Cache中申請1個Library Cache Object物件時,其已經在Library Cache中存在的比例。該指標的一個合理值應該達到95%以上。計算指令碼:
1 | SELECT (1 -(Sum(reloads)/(Sum(pins) + Sum(reloads)))) * 100 AS "Library Cache Hit Ratio" |
2 | FROM v$librarycache; |
④ Execute to Parse %:表示執行解析比,目標是希望一次解析多次執行,計算公式=[1-(parse count (total)/(execute count)]%=[1-1257816/14576118]%=91.37%,其中parse count (total)來源於V$SYSSTAT中的parse count (total)欄位值,execute count則取值於execute count的欄位值。同時在同一份AWR報告中,parse count (total)和execute count的值可以從AWR報告的Instance Activity Stats章節中獲取,如下摘錄:
Instance Activity Stats
- Ordered by statistic name
Statistic | Total | per Second | per Trans |
---|---|---|---|
Batched IO (bound) vector count | 560,211 | 157.69 | 28.15 |
CPU used by this session | 1,434,831 | 403.88 | 72.10 |
。。。。。 | 。。。 | 。。。 | 。。。 |
execute count | 14,576,118 | 4,102.96 | 732.43 |
。。。。。 | 。。。 | 。。。 | 。。。 |
parse count (describe) | 9 | 0.00 | 0.00 |
parse count (failures) | 28 | 0.01 | 0.00 |
parse count (hard) | 9,364 | 2.64 | 0.47 |
parse count (total) | 1,257,816 | 354.06 | 63.20 |
parse time cpu | 26,723 | 7.52 | 1.34 |
parse time elapsed | 49,687 | 13.99 | 2.50 |
redo entries | 7,072,485 | 1,990.80 | 355.38 |
redo log space requests | 3,665 | 1.03 | 0.18 |
。。。。。 | 。。。 | 。。。 | 。。。 |
sorts (disk) | 7 | 0.00 | 0.00 |
sorts (memory) | 22,108,325 | 6,223.16 | 1,110.92 |
。。。。。 | 。。。 | 。。。 | 。。。 |
。。。。。 | 。。。 | 。。。 | 。。。 |
write clones created in foreground | 2,243 | 0.63 | 0.11 |
⑤ Parse CPU to Parse Elapsd %:該指標表示解析消耗的CPU時間與解析消耗的總時間的比值,目標同樣是100%。我們當然希望解析的過程中,時間都消耗在CPU上,而不希望在解析的過程中,出現其他等待事件而拉長解析消耗的總時間。如果該指標偏低的話,說明在解析的過程中,除了消耗CPU資源外,還有其它等待事件,如等待共享池物件、閂鎖。計算公式=[parse time cpu/parse time elapsed]%,parse time cpu和parse time elapsed同樣來自於V$SYSSTAT,也可以參照AWR報告中Instance Activity Stats章節中的資料,如:Parse CPU to Parse Elapsd %:=[26723/49687]%=53.78%。
⑥ Redo NoWait %:表示會話寫Redo Entry時不等待的比例。計算公式=[1-redo log space requests/redo entries]%,同樣該兩項指標來自於V$SYSSTAT字典表,也可以參照AWR報告中Instance Activity Stats章節中的資料,如Redo NoWait %:=[1-3665/7072485]%=[1-0.0005]%=99.95%。
⑦ In-memory Sort %:表示在記憶體中排序的比例。計算公式=[1-sorts (disk)/sorts (memory)]%,同樣該兩項指標來自於V$SYSSTAT字典表,也可以參照AWR報告中Instance Activity Stats章節中的資料,如In-memory Sort %:=[1-7/22108325]%=99.9999%。
⑧ Soft Parse %:表示軟解析比例。計算公式=【1-parse count (hard)/parse count (total)】,同樣該兩項指標來自於V$SYSSTAT字典表,也可以參照AWR報告中Instance Activity Stats章節中的資料,如Soft Parse %:=[1-9364/1257816]%=99.26%。
⑨ Latch Hit %:表示以 willing-to-wait 方式去獲取記憶體栓鎖的命中率指標,通常這個指標要求至少在99%以上,否則,很有可能意味著大量栓鎖等待,影響效能。該值來源於V$LATCH字典表中的GETS和MISSES欄位值計算指令碼:
1 | SELECT (1 - (Sum(misses) / Sum(gets))) * 100 AS "Latch Hit Ratio" |
2 | FROM v$latch; |
⑩ % Non-Parse CPU:表示除解析之外CPU的使用率,計算公式=【1-(parse time cpu)/(CPU used by this session)】%。同樣該兩項指標來自於V$SYSSTAT字典表,也可以參照AWR報告中Instance Activity Stats章節中的資料,如% Non-Parse CPU:=[1-26723/1434831]%=98.18%。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24558279/viewspace-762371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 對於AWR報告的幾個片段分析。
- AWR 報告深度解讀:Redo Nowait指標的演算法和診斷AI指標演算法
- 關於Swift中的指標的那些事Swift指標
- 關於類似於awr的效能分析報告
- 關於快取命中率的幾個關鍵問題!快取
- 關於 智慧指標的東西指標
- 關於指標傳遞和指標的指標指標
- 關於COM中智慧指標的一些建議. (轉)指標
- 詳解c++指標的指標和指標的引用C++指標
- C++ 中 this 指標的用法詳解C++指標
- 【效能調優】Oracle AWR報告指標全解析Oracle指標
- Java關於空指標的防範與思考Java指標
- 關於二維陣列指標的問題陣列指標
- 關於App Annie全球遊戲指標報告的5個要點APP遊戲指標
- awr報表中用到的幾個SQLSQL
- Oracle AWR報告詳細解讀Oracle
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- c中關於指標的宣告和定義的一些問題指標
- Awr報告停止收集的解決方法
- 【AWR】Oracle資料庫匯出效能報告幾個指令碼的小說明Oracle資料庫指令碼
- Oracle生成awr報告Oracle
- AWR解析報告分析
- mysql-awr報告MySql
- Oracle 生成awr報告Oracle
- oracle效能awr報告Oracle
- 指標的詳細講解指標
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- viewpager獲取當前view報空指標的解決方法Viewpager指標
- 有關指標的那些事兒《一》指標
- 指向指標的常量引用瞭解指標
- AWR報告基礎操作
- 手工生成AWR分析報告
- Oracle AWR報告大綱Oracle
- oracle 產生awr 報告Oracle
- oracle AWR報告提取分析Oracle
- 基於AWR實現STATSPACK報告(4-等待事件)事件
- 基於AWR實現STATSPACK報告(5-TOPSQL)SQL
- 基於AWR實現STATSPACK報告(7-TOPSEGMENT)