天天看點

Oracle資料庫調試和優化詳解

此文主要是關于oracle資料庫調試和優化方面的相關内容的介紹,還有涉及到oracle資料庫中命裡率的相關問題的解答,其中包括不同的算法之間性能的比對。以下就是相關内容的介紹。

<b>關于oracle中各個命中率的計算以及相關的調優</b>

1)library cache的命中率:

計算公式:

通常在98%以上,否則,需要要考慮加大共享池,綁定變量,修改cursor_sharing等參數。

2)計算共享池記憶體使用率:

其中: &amp;tsp_in_m是你的總的共享池的size(m),共享池記憶體使用率,應該穩定在75%-90%間,太小浪費記憶體,太大則記憶體不足。

查詢空閑的共享池記憶體:

3)db buffer cache命中率:

通常應在90%以上,否則,需要調整,加大db_cache_size,另外一種計算命中率的方法(摘自oracle官方文檔&lt;&gt;):命中率的計算公式為:資料庫性能優化&gt;

分别代入上一查詢中的結果值,就得出了buffer cache的命中率

4)資料緩沖區命中率:

這裡命中率的計算應該是令

命中率

通常如果發現命中率低于90%,則應該調整應用可可以考慮是否增大資料緩沖區

5)共享池的命中率:

假如共享池的命中率低于95%,就要考慮調整應用(通常是沒使用bind var )或者增加記憶體

6)計算在記憶體中排序的比率:

—查詢記憶體排序數

—查詢磁盤排序數

此比率越大越好,太小整要考慮調整,加大pga

7)pga的命中率:

計算公式:bp x 100 / (bp + ebp)

或者從oem的圖形界面中檢視,我們可以檢視一個視圖以擷取oracle的建議值:

在此例中:pga至少要配置設定375m,我個人認為pga命中率不應該低于50%,以下的sql統計sql語句執行在三種模式的次數:

<b>本文來自雲栖社群合作夥伴“dbgeek”</b>