兩個優化Oracle資料庫性能的方法解析|命中率+OWI優化

兩個優化Oracle數據庫性能的方法解析

Oracle數據庫性能優化發展歷程

Oracle數據庫經過十數年的發展,已經被很多的企業所應用,整體機制已逐漸完善,針對Oracle數據庫優化的方法也經過數據庫運維人員不斷的改進逐漸形成了完整的體系。下面主要對Oracle數據庫的各種優化方法做一個對比。

目前Oracle數據庫主要優化方法

基於局部命中率分析的性能優化方法

基於OWI的性能優化方法

基於資源瓶頸分析的優化方法

基於流程分析和響應時間分析的性能優化方法

基於命中率的性能調優方法

兩個優化Oracle數據庫性能的方法解析|命中率+OWI優化

如果HIS系統長期以來在業務忙碌的時候運行緩慢,這時候可以指導維護人員生產AWR報告,發現Cache Hit Ratio只有67%,AWR報告Top5 wait主要為db file sequence read和db file scattered read。檢查SGA Buffer Cache配置,只有478M。這時候只需要增加Buffer Cache(例如增加到2G)性能問題就會消失。

不過基於命中率調優的方法也具有一定的侷限性

1.基於命中率的技術瑞然反映了Oracle內部效率問題,但這些命中率與使用數據庫的應用的性能關係不大;

2.命中率分析方法通過全局平均和模糊了個體,而大部分性能問題都是基於個體的。

基於等待時間的調優方法

兩個優化Oracle數據庫性能的方法解析|命中率+OWI優化

兩個優化Oracle數據庫性能的方法解析|命中率+OWI優化

其他還有:db file sequence read db file scattered read buffer busy waits enqueue、latch free log file parallelwrite log file sync。

Tips:這些等待信息顯示Oracle會話等待不同事件所花費的事件,如等待鎖、閂、IO,通過分析這些佔比較高的等待事件有效完成優化。

Oracle Wait interface

Oracle7.1出現的基於等待事件藉口的性能優化,基於等待事件的調優技術經過十多年的應用被廣泛接受

優點:

1.OWI方法是快速解決orale性能的最有效方式;

2.OWI方法優化降低了性能優化人員的能力需求。

缺點:

1.OWI事實上並不是從業務(流程)的角度看問題,而是從CPU的角度看問題;

2.解決複雜性能問題有侷限性。

OWI分析方法本質上和基於等待時間的調優方法是類似的,都缺乏從整體業務流程出發的概念。但是OWI的好處就是,簡單、有效、快速。

數據庫優化應該遵循的層次

兩個優化Oracle數據庫性能的方法解析|命中率+OWI優化

值得注意的是,在我們開發過程中,一定要使用綁定變量,來減少硬解析,因為大量的硬解析會消耗大量的cpu處理時間,佔用大量的Latch。

什麼是等待事件:

ORACLE的等待事件,主要分為兩類,即空閒(IDLE)等待事件和非空閒(NON-IDLW)等待事件。

1.空閒等待事件指ORACLE正等待某種工作,在診斷和優化數據庫的時候,不用過多注意這部分時間。

2.非空閒等待事件針對ORACLE的活動,指數據庫任務或應用運行過程中發生的等待,這些等待事件是在調整數據庫的時候需要關注和研究的。

兩個優化Oracle數據庫性能的方法解析|命中率+OWI優化

如何查看等待事件

1.v$session

2.v$session wait

3.v$session wait history

4.v$sqltext

5.v$active session history

6.v$system event

7.WRH#_ACTIVE_SESSION_HISTORY

8.DBA_HIST_ACTIVE_SESS_HISTORY

等等……

我們可以使用以上試圖關聯以等待事件為條件查詢當前影響性能的sql,並針對這些進行優化。


分享到:


相關文章: