1 引言
Oracle資料庫作為一種具有高可靠性、高安全性、高相容性的大型關係型資料庫,在金融、通訊、醫 療、生產製造等行業得到了廣泛的應用,已逐漸成為公司資訊化建設的重要基礎平台。在航天領域中, Oracle資料庫應用在人力資源、型號物資、財務及研製過程管理等管理資訊系統的同時,還用來儲存和管 理大量星上資料。要使Oracle資料庫適應應用需求,有效管理和利用資訊時代不斷產生並急劇膨脹的資料 ,從而更好地支撐業務應用,對Oracle資料庫最佳化顯得尤為重要。
在實際應用中,常常會遇到Oracle資料庫效能惡化的問題,目前,效能惡化的主要表現是系統響應時 間較長,需要使用者長時間的等待。而效能惡化的原因是多種多樣的,主要包括資料庫運行環境惡化、資料 庫參數設定不當和資料庫應用不夠最佳化三個方面,這就需要資料庫管理員有比較全面的電腦知識,能夠 敏感地察覺到影響資料庫效能的主要原因,並及時解決問題。
Oracle的效能最佳化是指根據不同的實際需求,對影響其效能的多種因素進行適當調整,以得到較好的 運行狀態,達到最佳化的效能。Oracle的效能最佳化主要從資料庫運行環境最佳化、資料庫參數最佳化和應用優 化三個方面人手,最佳化措施之間是相互聯絡的。
此外,Oracle資料的效能最佳化還需要對企業的需求有深入的瞭解,如:資料的輸送量、使用者對響應時 間的要求等,並能預見未來的需求變化,從而適時地進行最佳化配置。
2 環境最佳化
2.1最佳化記憶體
Oracle資料庫管理系統具有記憶體敏感性的特點,執行個體的記憶體結構是否能獲得足夠的實體記憶體,是決定 Oracle整體效能的關鍵因素,資料庫系統的效率可以通過調整記憶體配置得到很大的提升。
2.1.1合理配置記憶體
系統記憶體的配置應儘可能實現如下目標:
1)減少分頁;
2)減少記憶體交換;
3)儘可能讓系統全域區(SGA)能駐留記憶體。
當系統執行分頁時,會將當前沒有使用的資訊從記憶體移到硬碟上。這樣就可以為當前需要記憶體的程式 分配記憶體。如果頻繁地發生分頁,系統效能就會嚴重降低,從而導致很多程式的執行時間變長。
當系統執行記憶體交換時,會將活動進程臨時地從記憶體移到硬碟上,這樣另一個活動進程就可以得到所 需要的記憶體。記憶體交換基於系統迴圈時間。如果記憶體交換過於頻繁,就會產生大量的輸入/輸出(I/0), 應用的效能可能會急劇惡化。
SGA是Oracle的工作區,它和Oracle進程結合組成一個Oracle資料庫執行個體,管理資料庫資料,應答使用者 請求,為使用者提供服務。SGA對資料庫效能有著很大的影響,保證共用池有足夠的空間尤其重要。如果SGA 被頻繁地分頁和交換,系統效能將嚴重惡化。