獲得Oracle系統(tǒng)性能統(tǒng)計其實很簡單
以下的文章主要介紹的是獲得Oracle系統(tǒng)性能統(tǒng)計的實際操作步驟,有很多的人都問過我關(guān)于Oracle的性能相關(guān)問題。例如什么是性能慢?如何正確的量化性能統(tǒng)計?問題我不一一列出了,下面的文字大部分來自O(shè)racle 英文文檔。
如果有效地診斷性能問題,則進(jìn)行性能統(tǒng)計必不可少。Oracle能夠產(chǎn)生基于整個系統(tǒng)表現(xiàn)的、或者基于會話的、或者基于單個SQL語句的統(tǒng)計數(shù)據(jù)。Oracle也可以在段和服務(wù)追蹤和獲取統(tǒng)計數(shù)據(jù)的累積值。
當(dāng)我們關(guān)注某個方面的性能問題時,我們只需將該范圍的統(tǒng)計數(shù)據(jù)拿來,并作出判斷。一種典型方法是取得采樣期間統(tǒng)計數(shù)據(jù)的“首”“尾”,判斷期間的差異,并據(jù)此得出新能問題所在的判斷。
統(tǒng)計數(shù)據(jù),通常是自系統(tǒng)啟動后到當(dāng)前的累計統(tǒng)計數(shù)據(jù),可以通過諸如V$SESSTAT V$SYSSTAT等動態(tài)視圖獲得。因此,任何一次數(shù)據(jù)庫系統(tǒng)的啟動關(guān)閉操作都會導(dǎo)致這些統(tǒng)計數(shù)據(jù)的重置。
Oracle系統(tǒng)性能統(tǒng)計:Oracle 10g/11g 包含了如下類型的統(tǒng)計數(shù)據(jù):
AWR的統(tǒng)計數(shù)據(jù),關(guān)于系統(tǒng)運(yùn)行的累計統(tǒng)計;
度量值,關(guān)于累計統(tǒng)計差異性描述的變化值;
抽樣數(shù)據(jù),關(guān)于激活會話的統(tǒng)計數(shù)據(jù)。
Oracle在10g版本中提供了自動的工作量資料檔案庫功能,簡稱AWR,就是自動進(jìn)行性能取樣,數(shù)據(jù)涵蓋了除會話級別統(tǒng)計以外的大多統(tǒng)計。這個過程在一段時期內(nèi)重復(fù)進(jìn)行,每次取樣結(jié)果稱為一張AWR快照。每張快照之間的差異描述了系統(tǒng)性能狀態(tài)的改變,因此,這種快照代表了系統(tǒng)在取樣期間內(nèi)的改變。
除此之外,Oracle還自動收集另一種類型的統(tǒng)計,稱之為:度量值。所謂度量,就是某個累計統(tǒng)計數(shù)據(jù),在取樣期間內(nèi)改變的程度、比率。“度量”能涵蓋各種性能方面,包括響應(yīng)時間、事務(wù)處理吞吐量、數(shù)據(jù)庫調(diào)用數(shù)量、磁盤讀寫數(shù)量等。度量值可以通過對V$ 類型的動態(tài)視圖中獲得,v$視圖中的數(shù)據(jù)是一個相當(dāng)小的時間間隔內(nèi)的平均值,一般而言是60秒的期間。
Oracle系統(tǒng)性能統(tǒng)計:通過v$視圖可以獲得近期的度量值,遠(yuǎn)期的度量值則可以通過AWR快照獲得。
還有一種Oracle收集的統(tǒng)計數(shù)據(jù),稱之為抽樣數(shù)據(jù)。Oracle10g中新增了抽樣數(shù)據(jù)的取樣機(jī)制,稱之為自動的會話歷史記錄 ( ASH )。抽樣數(shù)據(jù)由ASH執(zhí)行完成。ASH抽樣所有活躍會話當(dāng)前狀態(tài),抽樣數(shù)據(jù)被收集到內(nèi)存中,通過V$視圖訪問。在AWR進(jìn)行工作載荷取樣時,這類數(shù)據(jù)也被自動搜集。
Oracle10g提供了一種診斷系統(tǒng)性能問題的有力方法:對比法。首先,我們需要建立統(tǒng)計基準(zhǔn)線。這個基準(zhǔn)線可以采用系統(tǒng)在高效、穩(wěn)定運(yùn)行期間的統(tǒng)計數(shù)據(jù)集合。依據(jù)這個基準(zhǔn)線集合,在系統(tǒng)出現(xiàn)性能出現(xiàn)問題的情況下,進(jìn)行對比,發(fā)現(xiàn)問題所在。這種方法有效地解決了當(dāng)我們面對數(shù)以千計的數(shù)據(jù)庫性能統(tǒng)計數(shù)據(jù)而一籌莫展的問題,避免我們陷入統(tǒng)計數(shù)據(jù)的海洋。
統(tǒng)計基準(zhǔn)線的獲得通過AWR實現(xiàn)。通過AWR,我們指定度量基準(zhǔn)線和保存AWR快照的時間范圍或一種類似指定,并把這段期間的統(tǒng)計數(shù)據(jù)作為統(tǒng)計基準(zhǔn)線。顯然,這個時間范圍指定應(yīng)慎重選擇。最合理的度量基線,應(yīng)該是在系統(tǒng)正常載荷狀態(tài)下,具有良好性能狀態(tài)時,獲得的累計統(tǒng)計。這樣,在系統(tǒng)遭遇性能障礙時,通過好壞比較得到問題根源。
這里所說的所有統(tǒng)計數(shù)據(jù)——實時性能數(shù)據(jù),或者AWR歷史快照數(shù)據(jù),我們都可以通過Oracle企業(yè)管理器(OEM)查看。不僅如此,企業(yè)管理器也能用來捕捉與AWR統(tǒng)計數(shù)據(jù)相關(guān)的操作系統(tǒng)和網(wǎng)絡(luò)統(tǒng)計的數(shù)據(jù)。
以上的相關(guān)內(nèi)容就是對獲得Oracle系統(tǒng)性能統(tǒng)計的介紹,望你能有所收獲。
【編輯推薦】