教你調整Oracle數據庫服務器的性能

發表于:2008-02-22來源:作者:點擊數: 標簽:
Oracle 數據庫 服務器 是整個系統的核心,它的 性能 高低直接影響整個系統的性能,為了調整Oracle數據庫服務器的性能,主要從以下幾個方面考慮: 1、調整操作系統以適合Oracle數據庫服務器運行 Oracle數據庫服務器很大程度上依賴于運行服務器的操作系統,如果
Oracle數據庫服務器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle數據庫服務器的性能,主要從以下幾個方面考慮:

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

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

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

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

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

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

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

  2、調整內存分配

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

  2.1 庫緩沖區的調整

  庫緩沖區中包含私用和共享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) ≈0,則庫緩沖區的命中率合適;若sum(pins)/sum(reloads)>1, 則需調整初始化參數 shared_pool_size來重新調整分配給共享池的內存量。

  2.2 數據字典緩沖區的調整

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

  2.3 緩沖區高速緩存的調整

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


  Select name,value from v$sysstat

where name in ('dbblock gets','consistent gets','physical reads');


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

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

  3、調整磁盤 I/O

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

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

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

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

  4.1 分離回滾段

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

  4.2 創建不同大小的回滾段群

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

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97