黃碧雄
【摘要】 隨著Oracle數(shù)據(jù)庫市場占有率的不斷提高,基于Oracle數(shù)據(jù)庫的應用系統(tǒng)所表現(xiàn)出來的性能問題越來越被IT管理人員所關注,因此有必要針對Oracle數(shù)據(jù)庫的性能優(yōu)化和監(jiān)控進行深入研究。本文主要介紹了Oracle數(shù)據(jù)庫性能的評價指標,分析影響Oracle數(shù)據(jù)庫系統(tǒng)性能的主要因素,以及對數(shù)據(jù)庫進行性能監(jiān)控及性能調(diào)優(yōu)的方法。
【關鍵詞】 ORACLE數(shù)據(jù)庫 性能優(yōu)化 性能監(jiān)控
一、引言
Oracle數(shù)據(jù)庫作為廣泛應用于企業(yè)系統(tǒng)開發(fā)的關系型數(shù)據(jù)庫,已經(jīng)成為企業(yè)信息化建設的重要基礎平臺。對Oracle數(shù)據(jù)庫的不合理配置嚴重影響企業(yè)應用系統(tǒng)的性能及業(yè)務開展。因此實施Oracle數(shù)據(jù)庫性能優(yōu)化和性能監(jiān)控,對提高基于Oracle數(shù)據(jù)庫的系統(tǒng)穩(wěn)定、高效運行和市場占用率都有重要的作用。
二、Oracle數(shù)據(jù)庫系統(tǒng)性能評價指標
對Oracle數(shù)據(jù)庫的性能優(yōu)化,其目標是最大限度地提高數(shù)據(jù)庫單位時間內(nèi)的數(shù)據(jù)吞吐率,同時將響應時間降到最小,提高應用系統(tǒng)的體驗效果。
硬件環(huán)境、網(wǎng)絡環(huán)境、業(yè)務模型等基礎環(huán)境的不同,影響著Oracle數(shù)據(jù)庫系統(tǒng)的性能,而且在使用過程中不同的應用程序、體系結構、服務器等具體情況也對Oracle數(shù)據(jù)庫的性能有不同程度的影響。
1、Oracle數(shù)據(jù)庫吞吐量。吞吐量是指單位時間內(nèi)Oracle數(shù)據(jù)庫處理SQL語句的數(shù)量。Oracle數(shù)據(jù)庫性能優(yōu)化主要就是為了增加數(shù)據(jù)庫的吞吐量。
2、 Oracle數(shù)據(jù)庫響應時間。Oracle數(shù)據(jù)庫的響應時間是指用戶從提交SQL語句開始到接收查詢結果集的第一行所需要的時間,Oracle數(shù)據(jù)庫的響應時間一般以毫秒或者秒為單位進行衡量。
3、Oracle數(shù)據(jù)庫命中率。Oracle用戶進程所需的所有數(shù)據(jù)都是經(jīng)過緩沖區(qū)高速緩存來存取的[1]。
4、 Oracle數(shù)據(jù)庫內(nèi)存使用情況。Oracle數(shù)據(jù)庫對內(nèi)存的使用情況主要體現(xiàn)在正常運行過程中對共享內(nèi)存、永久內(nèi)存和實時內(nèi)存的分配使用上。
5、磁盤I/0(磁盤讀寫)。磁盤的I/O操作主要是完成數(shù)據(jù)庫數(shù)據(jù)的存儲和讀取,耗費Oracle數(shù)據(jù)庫的最大開銷。通過合理的存儲配置可減少Oracle數(shù)據(jù)庫磁盤I/O操作,有利于提高Oracle數(shù)據(jù)庫的性能。
三、Oracle數(shù)據(jù)庫性優(yōu)化的主要方面
3.1調(diào)整與優(yōu)化數(shù)據(jù)庫設計
Oracle數(shù)據(jù)庫的設計方案是否優(yōu)化嚴重影響著后續(xù)Oracle數(shù)據(jù)庫的性能,盡管Oracle數(shù)據(jù)庫本身已經(jīng)提供了多種適合系統(tǒng)性能的調(diào)節(jié)方案,但是在開發(fā)信息系統(tǒng)之前,最優(yōu)的Oracle數(shù)據(jù)庫設計方案仍是影響Oracle數(shù)據(jù)庫性能的關鍵。
如果Oracle數(shù)據(jù)庫設計本身具有結構性問題,那么后續(xù)對數(shù)據(jù)庫的優(yōu)化和調(diào)整都很難達到良好的效果,因此提高數(shù)據(jù)庫的性能應該重視和完善Oracle數(shù)據(jù)庫設計方案。
3.2優(yōu)化應用程序SQL語句
優(yōu)化SQL查詢語句以及調(diào)整數(shù)據(jù)庫的訪問方法可以調(diào)高Oracle數(shù)據(jù)庫對內(nèi)存的命中率,進而減少I/O操作,同時可以減少網(wǎng)絡帶寬的占用,這對完善Oracle數(shù)據(jù)庫系統(tǒng)的性能具有非常重要的意義。
3.3調(diào)整數(shù)據(jù)庫內(nèi)存分配
Oracle數(shù)據(jù)庫實例是由一組Oracle后臺進程和SGA的一個內(nèi)存區(qū)組成,SGA暫時存放Oracle數(shù)據(jù)庫對內(nèi)存命中的數(shù)據(jù)。因此,提高SGA的使用效率可以大大提高Oracle數(shù)據(jù)庫系統(tǒng)的性能[2]。我們可以根據(jù)Oracle數(shù)據(jù)庫運行情況重新分配SGA的大小。
3.4調(diào)整與優(yōu)化磁盤I/0
物理磁盤是用來存儲計算機數(shù)據(jù)的,對Oracle數(shù)據(jù)庫的讀寫操作難免需要對物理磁盤進行頻繁訪問,所以優(yōu)化磁盤I/O操作是提高Oracle數(shù)據(jù)庫性能的重要方面。我們可以減少磁盤資源的競爭、減少I/O訪問次數(shù)、合理分配數(shù)據(jù)塊的存儲大小,減少磁盤操作,降低Oracle數(shù)據(jù)庫系統(tǒng)開銷。
四、Oracle數(shù)據(jù)庫性能監(jiān)控
4.1性能參數(shù)指標監(jiān)控
Oracle數(shù)據(jù)庫性能參數(shù)指標監(jiān)控只要針對Cache命中率、排序表空間、回滾段等關鍵指標最新狀態(tài)進行實施跟蹤監(jiān)測。性能參數(shù)監(jiān)控主要是完成監(jiān)控數(shù)據(jù)信息與標準數(shù)據(jù)進行對比,進而完成對數(shù)據(jù)庫各項性能指標的監(jiān)控。
4.2系統(tǒng)信息監(jiān)控
系統(tǒng)信息監(jiān)控主要通過GetHostInfo系統(tǒng)類來實現(xiàn),主要通過以下成員函數(shù)獲取系統(tǒng)性能信息[3]。(1)GetPerforinanceInfo()獲取數(shù)據(jù)庫系統(tǒng)服務器主機的CPU和內(nèi)存詳細使用情況。(2) GetProcessInfo()獲取數(shù)據(jù)庫系統(tǒng)服務器上每個進程的進程名、進程的CPU占有量、進程的內(nèi)存占有量、進程ID以及活動的進程數(shù)等進程信息。(3) GetNetwork()獲取數(shù)據(jù)庫系統(tǒng)服務器的網(wǎng)絡I/O。
4.3表空間監(jiān)控
表空間監(jiān)控主要是對Oracle數(shù)據(jù)庫系統(tǒng)內(nèi)表空間的信息獲取、匯總以及表空間限額預警,如通過綜合分析表空間的占有和分布情況,再根據(jù)預警規(guī)則,當表空間使用超過設定限額時可以向管理員發(fā)出預警。
五、優(yōu)化與監(jiān)控實例分析
為了評價Oracle數(shù)據(jù)庫優(yōu)化監(jiān)控的有效性,本節(jié)通過對“項目管理系統(tǒng)”(本廠一套業(yè)務系統(tǒng))的測試,觀察及記錄優(yōu)化性能參數(shù)前后對業(yè)務系統(tǒng)的影響。
5.1優(yōu)化與監(jiān)控測試目的
Oracle數(shù)據(jù)庫優(yōu)化與監(jiān)控的目的是為了在不影響正常的業(yè)務系統(tǒng)及數(shù)據(jù)庫性能的前提下,降低Oracle數(shù)據(jù)庫對磁盤的訪問次數(shù)及響應時間。
5.2優(yōu)化與監(jiān)控測試環(huán)境
5.3數(shù)據(jù)庫優(yōu)化測試
通過調(diào)整內(nèi)存,優(yōu)化磁盤I/O操作和提高SQL語句的使用效率等方面的調(diào)整優(yōu)化,Oracle數(shù)據(jù)庫的相應時間逐漸減少,性能得到顯著提高。
5.4數(shù)據(jù)庫性能測試
由圖1、圖2得出,Oracle數(shù)據(jù)庫監(jiān)控功能對服務器性能影響較少。針對本系統(tǒng)的監(jiān)控而言,Oracle數(shù)據(jù)庫監(jiān)控模塊的時間間隔是10秒,所以業(yè)務系統(tǒng)CPU、內(nèi)存的利用率在監(jiān)控功能啟動后,其性能采集點在時間上會有1~2%的提升,這在生產(chǎn)環(huán)境中是可以接受的。
六、結束語
Oracle數(shù)據(jù)庫因為其強大的功能,在國內(nèi)外的企業(yè)系統(tǒng)中得到廣泛的應用,也有越來越多的IT管理人員重視和參與到數(shù)據(jù)庫的性能優(yōu)化中來。Oracle數(shù)據(jù)庫的性能優(yōu)化涉及面廣,優(yōu)化和調(diào)整的過程需要不斷地摸索和總結。只有在把握好影響Oracle數(shù)據(jù)庫性能指標的關鍵因素基礎上,結合監(jiān)控系統(tǒng),針對不同因素進行相應的優(yōu)化調(diào)整,才能真正將數(shù)據(jù)庫性能提高到一定高度。
參 考 文 獻
[1] 郭敏, 郭靖. Oracle 10G數(shù)據(jù)庫性能優(yōu)化的研究[J]. 武漢理工大學學報, 2005, (10):103-105.
[2] 王振鐸, 王振輝. 基于Oracle9i的數(shù)據(jù)庫性能優(yōu)化策略研究[J]. 計算機系統(tǒng)應用, 2006, (6):76-79.
[3] 卞榮兵, 張迎春, 趙遠東. 基于ORACLE數(shù)據(jù)庫性能優(yōu)化的研究[J]. 計算機系統(tǒng)應用, 2002, (9).