為了保證Oracle數據庫運行在最佳的性能狀態下,在信息系統開發之前就應該考慮數據庫的優化策略 。優化策略一般包括服務器操作系統參數調整、數據庫參數調整、網絡性能調整、應用程序SQL語句分析 及設計等幾個方面,其中應用程序的分析與設計是在信息系統開發之前完成的。
分析評價Oracle數據庫性能主要有數據庫吞吐量、數據庫用戶響應時間兩項指標。數據庫用戶響應時 間又可以分為系統服務時間和用戶等待時間兩項,即:
數據庫用戶響應時間=系統服務時間+用戶等待時間
因此,獲得滿意的用戶響應時間有兩個途徑:一是減少系統服務時間,即提高數據庫的吞吐量;二是 減少用戶等待時間,即減少用戶訪問同一數據庫資源的沖突率。
數據庫性能優化包括如下幾個部分:
調整數據結構的設計 這一部分在開發信息系統之前完成,程序員需要考慮是否使用Oracle數據庫的分 區功能,對於經常訪問的數據庫表是否需要建立索引等。
調整應用程序結構設計 這一部分也是在開發信息系統之前完成的。程序員在這一步需要考慮應用程序 使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的 三層體系結構。不同的應用程序體系結構要求的數據庫資源是不同的。
調整數據庫SQL語句 應用程序的執行最終將歸結為數據庫中的SQL語句執行,因此SQL語句的執行效率 最終決定了Oracle數據庫的性能。 Oracle公司推薦使用Oracle語句優化器(Oracle Optimizer)和行鎖 管理器(Row-Level Manager)來調整優化SQL語句。
調整服務器內存分配 內存分配是在信息系統運行過程中優化配置的。數據庫管理員根據數據庫的運行 狀況不僅可以調整數據庫系統全局區(SGA區)的數據緩沖區、日志緩沖區和共享池的大小,而且還可以 調整程序全局區(PGA區)的大小。
調整硬盤I/O 這一步是在信息系統開發之前完成的。數據庫管理員可以將組成同一個表空間的數據文 件放在不同的硬盤上,做到硬盤之間I/O 負載均衡。
調整操作系統參數 例如:運行在Unix操作系統上的 Oracle數據庫,可以調整Unix數據緩沖區的大小 、每個進程所能使用的內存大小等參數。
實際上,上述數據庫優化措施之間是相互聯系的。Oracle 數據庫性能惡化的表現基本上都是用戶響應 時間比較長,需要用戶長時間的等待。而性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性 能惡化的結果,這就需要數據庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響數據庫性能的主 要原因所在。另外,良好的數據庫管理工具對於優化數據庫性能也是很重要的。
Oracle數據庫常用的數據庫性能優化工具有:
Oracle數據庫在線數據字典 Oracle在線數據字典能夠反映出Oracle的動態運行情況,對於調整數據庫 性能是很有幫助的。
操作系統工具 例如使用Unix操作系統的Vmstat、 Iostat等命令可以查看到系統級內存和硬盤I/O的使 用情況,這些工具能夠幫助管理員弄清楚系統瓶頸出現在什麼地方。
SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整實例,並使用SQL語句跟 蹤文件調整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統的文件,管理員可以使用TKPROF 工具查看這些文件。
Oracle Enterprise Manager(OEM) 這是一個圖形的用戶管理界面,用戶可以使用它方便地進行數據 庫管理而不必記住復雜的Oracle數據庫管理的命令。
Explain Plan——SQL語言優化命令 使用這個命令可以幫助程序員寫出高效的SQL語言。