在一般的情況下我們為了保證Oracle 數據庫在運行最佳的狀態下,在相關的信息系統的開發前我們就應該數據庫的優化策略有更好的考慮。優化策略一般包括服務器操作系統參數調整、Oracle 數據庫參數調整、網絡性能調整、應用程序SQL語句分析及設計等幾個方面。
其中應用程序的分析與設計是在信息系統開發之前完成的。
分析評價Oracle 數據庫性能主要有數據庫吞吐量、數據庫用戶響應時間兩項指標。數據庫吞吐量是指單位時間內數據庫完成的SQL語句數目;數據庫用戶響應時間是指用戶從提交SQL語句開始到獲得結果的那一段時間。數據庫用戶響應時間又可以分為系統服務時間和用戶等待時間兩項,即:
數據庫用戶響應時間=系統服務時間 + 用戶等待時間
上述公式告訴我們,獲得滿意的用戶響應時間有兩個途徑:一是減少系統服務時間,即提高數據庫的吞吐量;二是減少用戶等待時間,即減少用戶訪問同一數據庫資源的沖突率。
性能優化包括如下幾個部分:
Oracle 數據庫性能優化之一:調整數據結構的設計。
這一部分在開發信息系統之前完成,程序員需要考慮是否使用Oracle 數據庫的分區功能,對於經常訪問的數據庫表是否需要建立索引等。
Oracle 數據庫性能優化之二:調整應用程序結構設計。
這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的ClIEnt/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
Oracle 數據庫性能優化之三:調整數據庫SQL語句。
應用程序的執行最終將歸結為數據庫中的SQL語句執行,因此SQL語句的執行效率最終決定了Oracle 數據庫的性能。Oracle 公司推薦使用Oracle 語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。
Oracle 數據庫性能優化之四:調整服務器內存分配。
內存分配是在信息系統運行過程中優化配置的,數據庫管理員可以根據數據庫運行狀況調整數據庫系統全局區(SGA區)的數據緩沖區、日志緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會占用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。
Oracle 數據庫性能優化之五:調整硬盤I/O,這一步是在信息系統開發之前完成的。
數據庫管理員可以將組成同一個表空間的數據文件放在不同的硬盤上,做到硬盤之間I/O負載均衡。
Oracle 數據庫性能優化之六:調整操作系統參數。
例如:運行在UNIX操作系統上的Oracle 數據庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。
實際上,上述Oracle 數據庫性能優化措施之間是相互聯系的。Oracle 數據庫性能惡化表現基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要數據庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響數據庫性能的主要原因所在。另外,良好的數據庫管理工具對於優化數據庫性能也是很重要的。