程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 描述Oracle優化庫高速緩沖區

描述Oracle優化庫高速緩沖區

編輯:Oracle數據庫基礎

Oracle經過長時間的發展,很多用戶都很了解Oracle優化庫高速緩沖區了,這裡我發表一下個人理解,和大家討論討論。日志緩沖區也稱為重做日志緩沖區,它包含所有變化了的數據塊。這些變化的數據塊通過Oracle日志書寫進程以一種鄰接的方式寫到重做日志文件中。

(1)獲取緩沖區活動情況
優化日志緩沖區時,首先應了解緩沖區的活動情況。這對通過查詢動態性能表(需有SELECT  ANY TABLE特權)V$SYSSTAT來獲得。

(2)計算日志緩沖區的申請失敗率
數據庫管理員可以通過執行下述語句。

查看日志緩沖區的使用情況。查詢出的結果可以計算出日志緩沖區的申請失敗率。申請失敗率=requests/entrIEs。申請失敗率應該接近於0,否則說明日志緩沖區開設太小,需要增加Oracle數據庫的日志緩沖區。

(3)優化日志緩沖區
如果重做緩沖區的等待大於零,進程就要等待重做日志緩沖區的空間變成可用。此時就會影響數據庫的性能。可以通過逐步提高init.ora中參數 LOG_BUFFER的值來達到優化日志緩沖區的目的。在增加LOG_BUFFER的值時,可通過查詢動態性能表來了解和檢查日志緩沖區的活動情況。
優化共享池

共享池由庫高速緩存、字典高速緩存和SQL區組成。整個共享池的大小由參數SHARED_POOL_SIZE確定。共享池的優化主要考慮庫高速緩沖區、數據字典高速緩沖區以及會話期間信息的優化。

Oracle優化庫高速緩沖區

要Oracle優化庫高速緩沖區,必須首先了解該緩沖區的活動情況。庫高速緩沖區的活動統計信息保留在動態性能表V$LIBRARYCACHE中。優化時應使數據字典高速緩存裡的內存數據庫塊盡可能多。

(1)確定庫高速緩存的性能
通過查詢V$LIBRARYCACHE表(需有SELECT ANY TABLE特權)來了解其活動情況,以決定如何優化。說明:動態性能表V$LIBRARYCACHE中包含有NAMESPACE、PINS和RELOAD等列。其中NAMESPACE列反映了SQL語句及 PL/SQL塊的庫緩沖區的活動,其值可能是‘SQL AREA’,‘TABLE/PROCEDURE’,‘BODY’和‘TRIGGER’等;而PINS和RELOADS列給出執行調用時的錯誤信息。 PINS列給出SQL語句、PL/SQL塊及被訪問對象定義的總次數;RELOADS給出SQL語句或PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區中發生的錯誤。

(2)查看reloads和pins的比率
用戶必須保證reloads和pins的比率盡可能低,其值應低於1%,若RELOADS/PINS>1%,則應給緩沖區分配附加的存儲及寫等同的SQL語句,使SQL語句與PL/SQL塊共享一個共享SQL區,這樣可減少錯誤。如果庫高速緩沖區無錯誤,則可設置初始化參數 CUTSOR_SPACE_FOR_TIME為TRUE,以加速執行調用。這可使性能稍有改善。若每個用戶可用的專用SQL區不足時,則不要將 CUTSOR_SPACE_FOR_TIME設置為TRUE。

(3)Oracle優化庫高速緩沖區
優化庫高速緩存時,可以通過增加init.ora文件中SHARED_POOL_SIZE或OPEN_CURSORS的參數值而達到滿意的優化比率。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved