熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何調整Oracle數據庫服務器的性能

2013-11-13 22:22:33  來源: Oracle 

  Oracle數據庫服務器是整個系統的核心它的性能高低直接影響整個系統的性能為了調整Oracle數據庫服務器的性能主要從以下幾個方面考慮

  

  ◆調整操作系統以適合Oracle數據庫服務器運行 Oracle數據庫服務器很大程度上依賴於運行服務器的操作系統如果操作系統不能提供最好性能那麼無論如何調整Oracle數據庫服務器也無法發揮其應有的性能

  

   為Oracle數據庫服務器規劃系統資源

  

  據已有計算機可用資源 規劃分配給Oracle服務器資源原則是盡可能使Oracle服務器使用資源最大化特別在Client/Server中盡量讓服務器上所有資源都來運行Oracle服務

  

   調整計算機系統中的內存配置

  多數操作系統都用虛存來模擬計算機上更大的內存它實際上是硬盤上的一定的磁盤空間當實際的內存空間不能滿足應用軟件的要求時操作系統就將用這部分的磁盤空間對內存中的信息進行頁面替換這將引起大量的磁盤I/O操作使整個服務器的性能下降為了避免過多地使用虛存應加大計算機的內存

  

   為Oracle數據庫服務器設置操作系統進程優先級

  

  不要在操作系統中調整Oracle進程的優先級因為在Oracle數據庫系統中所有的後台和前台數據庫服務器進程執行的是同等重要的工作需要同等的優先級所以在安裝時讓所有的數據庫服務器進程都使用缺省的優先級運行

  

  ◆調整內存分配

  

  Oracle數據庫服務器保留個基本的內存高速緩存分別對應種不同類型的數據庫高速緩存字典高速緩存和緩沖區高速緩存庫高速緩存和字典高速緩存一起構成共享池共享池再加上緩沖區高速緩存便構成了系統全程區(SGA)SGA是對數據庫數據進行快速訪問的一個系統全程區若SGA本身需要頻繁地進行釋放分配則不能達到快速訪問數據的目的因此應把SGA放在主存中不要放在虛擬內存中內存的調整主要是指調整組成SGA的內存結構的大小來提高系統性能由於Oracle數據庫服務器的內存結構需求與應用密切相關所以內存結構的調整應在磁盤I/O調整之前進行

  

   庫緩沖區的調整

  

  庫緩沖區中包含私用和共享SQL和PL/SQL區通過比較庫緩沖區的命中率決定它的大小要調整庫緩沖區必須首先了解該庫緩沖區的活動情況庫緩沖區的活動統計信息保留在動態性能表v$librarycache數據字典中可通過查詢該表來了解其活動情況以決定如何調整Select sum(pins)sum(reloads) from v$librarycache; Pins列給出SQL語句PL/SQL塊及被訪問對象定義的總次數Reloads列給出SQL 和PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區中發生的錯誤如果sum(pins)/sum(reloads) ≈則庫緩沖區的命中率合適若sum(pins)/sum(reloads)> 則需調整初始化參數 shared_pool_size來重新調整分配給共享池的內存量

  

   數據字典緩沖區的調整

  

  數據字典緩沖區包含了有關數據庫的結構用戶實體信息數據字典的命中率對系統性能影響極大數據字典緩沖區的使用情況記錄在動態性能表v$librarycache中可通過查詢該表來了解其活動情況以決定如何調整Select sum(gets)sum(getmisses) from v$rowcache; Gets列是對相應項請求次數的統計Getmisses 列是引起緩沖區出錯的數據的請求次數對於頻繁訪問的數據字典緩沖區sum(getmisses)/sum(gets)<%~%若大於此百分數則應考慮增加數據字典緩沖區的容量即需調整初始化參數shared_pool_size來重新調整分配給共享池的內存量

  

   緩沖區高速緩存的調整

  

  用戶進程所存取的所有數據都是經過緩沖區高速緩存來存取所以該部分的命中率對性能至關重要緩沖區高速緩存的使用情況記錄在動態性能表v$sysstat中可通過查詢該表來了解其活動情況以決定如何調整

  

  Select namevalue from v$sysstat

  

  where name in (dbblock getsconsistent getsphysical reads);

  

  dbblock gets和consistent gets的值是請求數據緩沖區中讀的總次數physical reads的值是請求數據時引起從盤中讀文件的次數從緩沖區高速緩存中讀的可能性的高低稱為緩沖區的命中率計算公式

  

  Hit Ratio=(physical reds/(dbblock gets+consistent gets))如果Hit Ratio<%~%則應增大db_block_buffers的參數值db_block_buffers可以調整分配給緩沖區高速緩存的內存量即db_block_buffers可設置分配緩沖區高速緩存的數據塊的個數緩沖區高速緩存的總字節數=db_block_buffers的值*db_block_size的值 db_block_size 的值表示數據塊大小的字節數可查詢 v$parameter 表select namevalue from v$parameter where name=db_block_size; 在修改了上述數據庫的初始化參數以後必須先關閉數據庫在重新啟動數據庫後才能使新的設置起作用

  

  ◆調整磁盤 I/O

  

  磁盤的I/O速度對整個系統性能有重要影響解決好磁盤I/O問題可顯著提高性能影響磁盤I/O的性能的主要原因有磁盤競爭I/O次數過多和數據塊空間的分配管理

  

  為Oracle數據庫服務器創建新文件時不論是表空間所用的數據文件還是數據事務登錄所用的日志文件都應仔細考慮數據庫服務器上的可用磁盤資源如果服務器上有多個磁盤則可將文件分散存儲到各個可用磁盤上減少對數據庫的數據文件及事務日志文件的競爭從而有效地改善服務器的性能對於不同的應用系統都有各自的數據集應當創見不同的表空間分別存儲各自應用系統的數據並且盡可能的把表空間對應的數據文件存放在不同的磁盤上這種從物理上把每個應用系統的表空間分散存放的方法可以排除兩個應用系統競爭磁盤的可能性數據文件事務日志文件分別存放在不同的磁盤上這樣事務處理執行的磁盤訪問不妨礙對相應的事物日志登記的磁盤訪問如果有多個磁盤可用將兩個事物日志成員放在不同的磁盤驅動器上就可以消除日志文件可能產生的磁盤競爭應把一個應用的表數據和索引數據分散存放不同表空間上並且盡量把不同類型的表空間存放在不同磁盤上這樣就消除了表數據和索引數據的磁盤競爭

  

  ◆調整數據庫服務器的回滾段

  

  回滾段是一個存儲區域數據庫使用該存儲區域存放曾經由一個事務更新或刪除的行的原始數據值如果用戶要回滾一個事務所做的改變那麼數據庫就從回滾段中讀回改變前的數據並使該事務影響的行改變為它們的原狀態回滾段控制著數據庫處理事務的能力因而在數據庫成功中起著關鍵性的作用不管數據庫的其它部分設計得多好如果它設計得不合理將會嚴重影響系統的性能建立和調整回滾段的原則如下

  

   分離回滾段

  

  分離回滾段是指單獨為回滾段創建一個以上的表空間使回滾段與數據字典用戶數據索引等分離開來由於回滾段的寫入與數據和索引的寫入是並行進行的因此將它分離出來可以減少I/O爭用如果回滾段與數據不分離倘若要某個表空間脫機或撤消那麼在該表空間中的各個回滾段沒有全部脫機之前不能將這個表空間脫機或撤消而一旦該表空間不可用則該表空間中的所有回滾段也不能使用這將浪費所有分配的磁盤空間所以獨立回滾段可使數據庫管理變得容易回滾段的經常性收縮使得表空間的自由塊更容易形成碎片分離回滾段可以減少數據庫表空間的碎片產生

  

   創建不同大小的回滾段群

  

  對於一些聯機事物處理他們一般是頻繁地對少量數據進行修改創建許多小的回滾段對之有利每一個事物的入口項只能限於一個回滾段回滾段應該充分大以容納一個完整的事物處理因此對一些較大型事物需要較大型的回滾段極個別脫機處理事物會產生大量的回滾信息這時需要一個特大號的回滾段來處理根據這些理論在Oracle數據庫服務器中針對上述種事物處理創建三組小事物組較大事物組特大事物組等大小不同的回滾段群並且將之分散到個不同的表空間上群內大小相同應能滿足該組事物處理的最大要求


From:http://tw.wingwit.com/Article/program/Oracle/201311/18922.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.