如何獲得Oracle系統效能統計?

wenpingblog發表於2010-01-13
Oracle大型資料庫系統在AIXUNIX上的實戰詳解 集中討論 14
 

累計讀者的來信中,有若干位同仁談到Oracle的效能問題。什麼叫效能慢?怎麼量化效能統計?問題我不一一列出了,下面的文字大部分來自Oracle 英文文件,我認為描述的極為精確,比我說的強。也請參見www.usedb.cn.

 

如果有效地診斷效能問題,則進行效能統計必不可少。Oracle能夠產生基於整個系統表現的、或者基於會話的、或者基於單個SQL語句的統計資料。Oracle也可以在段和服務追蹤和獲取統計資料的累積值。當我們關注某個方面的效能問題時,我們只需將該範圍的統計資料拿來,並作出判斷。一種典型方法是取得采樣期間統計資料的“首”“尾”,判斷期間的差異,並據此得出新能問題所在的判斷。

統計資料,通常是自系統啟動後到當前的累計統計資料,可以通過諸如V$SESSTAT V$SYSSTAT等動態檢視獲得。因此,任何一次資料庫系統的啟動關閉操作都會導致這些統計資料的重置。

Oracle 10g/11g 包含了如下型別的統計資料:

¨ AWR的統計資料,關於系統執行的累計統計;

¨ 度量值,關於累計統計差異性描述的變化值;

¨ 抽樣資料,關於啟用會話的統計資料。

Oracle在10g版本中提供了自動的工作量資料檔案庫功能,簡稱AWR,就是自動進行效能取樣,資料涵蓋了除會話級別統計以外的大多統計。這個過程在一段時期內重複進行,每次取樣結果稱為一張AWR快照。每張快照之間的差異描述了系統效能狀態的改變,因此,這種快照代表了系統在取樣期間內的改變。

除此之外,Oracle還自動收集另一種型別的統計,稱之為:度量值。所謂度量,就是某個累計統計資料,在取樣期間內改變的程度、比率。“度量”能涵蓋各種效能方面,包括響應時間、事務處理吞吐量、資料庫呼叫數量、磁碟讀寫數量等。度量值可以通過對V$ 型別的動態檢視中獲得,v$檢視中的資料是一個相當小的時間間隔內的平均值,一般而言是60秒的期間。通過v$檢視可以獲得近期的度量值,遠期的度量值則可以通過AWR快照獲得。

還有一種Oracle收集的統計資料,稱之為抽樣資料。Oracle10g中新增了抽樣資料的取樣機制,稱之為自動的會話歷史記錄 ( ASH )。抽樣資料由ASH執行完成。ASH抽樣所有活躍會話當前狀態,抽樣資料被收集到記憶體中,通過V$檢視訪問。在AWR進行工作載荷取樣時,這類資料也被自動蒐集。

Oracle10g提供了一種診斷系統效能問題的有力方法:對比法。首先,我們需要建立統計基準線。這個基準線可以採用系統在高效、穩定執行期間的統計資料集合。依據這個基準線集合,在系統出現效能出現問題的情況下,進行對比,發現問題所在。這種方法有效地解決了當我們面對數以千計的資料庫效能統計資料而一籌莫展的問題,避免我們陷入統計資料的海洋。

統計基準線的獲得通過AWR實現。通過AWR,我們指定度量基準線和儲存AWR快照的時間範圍或一種類似指定,並把這段期間的統計資料作為統計基準線。顯然,這個時間範圍指定應慎重選擇。最合理的度量基線,應該是在系統正常載荷狀態下,具有良好效能狀態時,獲得的累計統計。這樣,在系統遭遇效能障礙時,通過好壞比較得到問題根源。

這裡所說的所有統計資料——實時效能資料,或者AWR歷史快照資料,我們都可以通過Oracle企業管理器(OEM)檢視。不僅如此,企業管理器也能用來捕捉與AWR統計資料相關的作業系統和網路統計的資料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22363020/viewspace-625098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章