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