摘要:通過探討和研究Oracle伺服器和Client/Server的特點和原理,闡述了提高、調整Oracle應用系統性能的一些原則和方法。
關鍵詞:Oracle;客戶/伺服器;系統全程區;網路I/O;回滾段。
Oracle 數據庫廣泛應用在社會的各個領域,特別是在Client/Server模式的應用,但是應用開發者往往碰到整個系統的性能隨著數據量的增大顯著下降的問題,為了解決這個問題,從以下幾個方面:數據庫伺服器、網路I/O、應用程式等對整個系統加以調整,充分發揮Oracle的效能,提高整個系統的性能。
1 調整數據庫伺服器的性能
Oracle數據庫伺服器是整個系統的核心,它的性能高低直接影響整個系統的性能,為了調整Oracle數據庫伺服器的性能,主要從以下幾個方面考慮:
1.1 調整作業系統以適合Oracle數據庫伺服器運行
Oracle數據庫伺服器很大程度上依賴於運行伺服器的作業系統,如果作業系統不能提供最好性能,那麼無論如何調整,Oracle數據庫伺服器也無法發揮其應有的性能。
1.1.1 為Oracle數據庫伺服器規劃系統資源
據已有電腦可用資源, 規劃分配給Oracle伺服器資源原則是:盡可能使Oracle伺服器使用資源最大化,特別在Client/Server中儘量讓伺服器上所有資源都來運行Oracle服務。
1.1.2 調整電腦系統中的記憶體配置
多數作業系統都用虛存來模擬電腦上更大的記憶體,它實際上是硬盤上的一定的磁片空間。當實際的記憶體空間不能滿足應用軟體的要求時,作業系統就將用這部分的磁片空間對記憶體中的資訊進行頁面替換,這將引起大量的磁片I/O操作,使整個伺服器的性能下降。為了避免過多地使用虛存,應加大電腦的記憶體。
1.1.3 為Oracle數據庫伺服器設置作業系統進程優先級
不要在作業系統中調整Oracle進程的優先級,因為在Oracle數據庫系統中,所有的後臺和前臺數據庫伺服器進程執行的是同等重要的工作,需要同等的優先級。所以在安裝時,讓所有的數據庫伺服器進程都使用缺省的優先級運行。
1.2 調整記憶體分配
Oracle數據庫伺服器保留3個基本的記憶體高速緩存,分別對應3種不同類型的數據:庫高速緩存,字典高速緩存和緩衝區高速緩存。庫高速緩存和字典高速緩存一起構成共用池,共用池再加上緩衝區高速緩存便構成了系統全程區(SGA)。SGA是對數據庫數據進行快速訪問的一個系統全程區,若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數據的目的,因此應把SGA放在主存中,不要放在虛擬記憶體中。記憶體的調整主要是指調整組成SGA的記憶體結構的大小來提高系統性能,由於Oracle數據庫伺服器的記憶體結構需求與應用密切相關,所以記憶體結構的調整應在磁片I/O調整之前進行。
1.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來重新調整分配給共用池的記憶體量。
1.2.2 數據字典緩衝區的調整
數據字典緩衝區包含了有關數據庫的結構、用戶、實體資訊。數據字典的命中率,對系統性能影響極大。數據字典緩衝區的使用情況記錄在動態性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調整。
Select sum(gets),sum(getmisses) from v$rowcache;
|
1
2
3
4
下一頁>>