文/劉春菊
Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化
文/劉春菊
文章開(kāi)篇點(diǎn)題,首先對(duì)Oracle數(shù)據(jù)庫(kù)的含義進(jìn)行了簡(jiǎn)明扼要的概括,然后又列舉了Oracle數(shù)據(jù)庫(kù)相對(duì)突出的幾個(gè)特點(diǎn),最后通過(guò)理論與實(shí)際相結(jié)合的方式,將內(nèi)存調(diào)整和CPU利用作為切入點(diǎn),針對(duì)“Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化”展開(kāi)了科學(xué)、系統(tǒng)的探討,供相關(guān)人員參考。
Oracle數(shù)據(jù)庫(kù) 應(yīng)用系統(tǒng) 性能優(yōu)化
一般來(lái)說(shuō),Oracle數(shù)據(jù)庫(kù)的突出特點(diǎn)在于對(duì)事物進(jìn)行處理時(shí)具有較高的質(zhì)量和效率,但是在實(shí)踐過(guò)程中人們發(fā)現(xiàn),大部分Oracle數(shù)據(jù)庫(kù)在性能方面均存在相應(yīng)的問(wèn)題,想要避免這一情況具有不利影響的進(jìn)一步深化,對(duì)Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)的性能進(jìn)行完善是非常有必要的。本文則以此為中心,展開(kāi)了相應(yīng)的探討。
Oracle數(shù)據(jù)庫(kù)最主要的作用在于對(duì)不同數(shù)據(jù)所具有關(guān)聯(lián)性加以梳理,并在此基礎(chǔ)上生成能夠?qū)?shù)據(jù)關(guān)聯(lián)性進(jìn)行準(zhǔn)確反映的數(shù)據(jù)庫(kù)。Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)不僅能夠在計(jì)算機(jī)系統(tǒng)中對(duì)具有關(guān)聯(lián)性的數(shù)據(jù)庫(kù)進(jìn)行直接應(yīng)用,以此來(lái)實(shí)現(xiàn)對(duì)科學(xué)、完善的用戶(hù)設(shè)備系統(tǒng)框架所對(duì)應(yīng)DBMs進(jìn)行提供的目標(biāo),還能夠通過(guò)SQL*NET軟件層的輔助,為Oracle數(shù)據(jù)庫(kù)提供更加豐富的分布式條件,從而達(dá)成多點(diǎn)查詢(xún)以及單點(diǎn)更新的目標(biāo)。隨著社會(huì)的發(fā)展,Oracle數(shù)據(jù)庫(kù)變得更加完善,并被應(yīng)用在以工業(yè)、銀行為代表的領(lǐng)域之中。
Oracle數(shù)據(jù)庫(kù)兼具數(shù)據(jù)操作、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)通信以及接口等多項(xiàng)原則,這些原則的存在間接表明了Oracle數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)性特點(diǎn)。
Oracle數(shù)據(jù)庫(kù)不僅能夠在多用戶(hù)或是大數(shù)據(jù)庫(kù)的數(shù)據(jù)系統(tǒng)中進(jìn)行應(yīng)用,還能夠?qū)τ布O(shè)施進(jìn)行應(yīng)用。它為多個(gè)用戶(hù)在同一時(shí)間、同一數(shù)據(jù)庫(kù)開(kāi)展相應(yīng)工作提供了科學(xué)的平臺(tái),在對(duì)數(shù)據(jù)爭(zhēng)用性進(jìn)行降低的同時(shí),提高了數(shù)據(jù)統(tǒng)一性。
Oracle數(shù)據(jù)庫(kù)在完善性和安全性方面具有的優(yōu)勢(shì)相對(duì)而言較為突出,Oracle兼具日志、特權(quán)、識(shí)別等功能,可以在最大程度上保證所存儲(chǔ)數(shù)據(jù)的完善性和安全性。
對(duì)內(nèi)存數(shù)據(jù)進(jìn)行調(diào)整,主要指的是對(duì)Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)進(jìn)行全局性調(diào)控。對(duì)作為Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)的核心部分——內(nèi)存而言,它能夠以用戶(hù)和服務(wù)器共享對(duì)于SGA的描述為出發(fā)點(diǎn),對(duì)Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)的訪問(wèn)區(qū)域進(jìn)行科學(xué)、準(zhǔn)確的劃分,到目前為止,仍舊沒(méi)有針對(duì)內(nèi)存調(diào)整形成系統(tǒng)、科學(xué)的方案,由此可以看出,結(jié)合實(shí)際情況對(duì)內(nèi)存調(diào)整方案加以?xún)?yōu)化是非常有必要的。
3.1.1 對(duì)共享環(huán)節(jié)進(jìn)行優(yōu)化
共享環(huán)節(jié)存在最主要的作用即為對(duì)分析完畢的LQS加以保存,重新應(yīng)用前不需要進(jìn)行再次分析。人們可以通過(guò)在共享環(huán)節(jié)對(duì)語(yǔ)句進(jìn)行尋找的方式,保證語(yǔ)句分析與落實(shí)效率的提高,這樣做能夠在一定程度上對(duì)資源被惡意消耗的情況加以緩解。對(duì)于被放置在共享環(huán)節(jié)中的數(shù)據(jù)而言,主要作用在于為應(yīng)用程序提供相應(yīng)的數(shù)據(jù)支持,由此可以看出,對(duì)共享環(huán)節(jié)進(jìn)行優(yōu)化,可以保證數(shù)據(jù)命中率的提高。
3.1.2 對(duì)緩沖區(qū)進(jìn)行優(yōu)化
Oracle數(shù)據(jù)庫(kù)能夠裝載的數(shù)據(jù)會(huì)隨著緩沖區(qū)具有高速緩存空間的增加而增加,Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)自身的性能與之前相比自然會(huì)有所提高。
3.1.3 對(duì)日志緩沖區(qū)進(jìn)行優(yōu)化
日志緩沖區(qū)空間較小,會(huì)導(dǎo)致Oracle數(shù)據(jù)庫(kù)無(wú)法提供用來(lái)對(duì)重做日志條目進(jìn)行存放的空間,在對(duì)空閑空間進(jìn)行等待的過(guò)程中,log buffer數(shù)據(jù)會(huì)被LGWR進(jìn)程裝入磁盤(pán)之中,I/ O活動(dòng)次數(shù)也會(huì)因此而出現(xiàn)不必要的增加,無(wú)論是對(duì)系統(tǒng)整體性能還是對(duì)執(zhí)行效率而言,這都是非常不利的。
CPU的利用情況會(huì)對(duì)Oracle數(shù)據(jù)庫(kù)的整體性能產(chǎn)生直接影響,因此,對(duì)CPU性能加以?xún)?yōu)化,不僅能夠提高各項(xiàng)資源的應(yīng)用效率,還能夠保證數(shù)據(jù)庫(kù)運(yùn)營(yíng)質(zhì)量的提高。
首先需要明確的一點(diǎn)是,在對(duì)Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)進(jìn)行配備的過(guò)程中,star-u指令可作為對(duì)CPU的使用效率進(jìn)行查看的途徑;如果計(jì)算機(jī)的應(yīng)用系統(tǒng)處于運(yùn)行狀態(tài)下,那么則能夠通過(guò)性能管理器完成對(duì)CPU的使用效率進(jìn)行查看的工作。人們可以在Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用數(shù)據(jù)的數(shù)據(jù)字典內(nèi)部,完成對(duì)CPU使用效率語(yǔ)句的工具進(jìn)行配備的工作,該工具最主要的作用在于準(zhǔn)確記錄Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)的CPU的使用時(shí)間,以及操作系統(tǒng)的CPU被用戶(hù)使用的時(shí)間。CPU運(yùn)行的總時(shí)間包括兩個(gè)部分,分別是用戶(hù)對(duì)CPU進(jìn)行操作的時(shí)間以及系統(tǒng)對(duì)CPU進(jìn)行操作的時(shí)間,Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)CPU的使用時(shí)間如果能夠占據(jù)CPU全部使用時(shí)間90%或以上,那么就代表著Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)處于正常的運(yùn)行狀態(tài)下;Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)CPU的使用時(shí)間如果不能占據(jù)CPU全部使用時(shí)間90%或以上,那么就代表CPU被其他程序占據(jù)的比例相對(duì)較高,Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)自然無(wú)法處于正常的運(yùn)行狀態(tài)。
通過(guò)分析可以發(fā)現(xiàn),導(dǎo)致CPU資源利用率相對(duì)較低的原因較多,其中具有代表性的即為SQL語(yǔ)句的效率低下。Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)往往包含著大量SQL語(yǔ)句的解析分析方法,在查詢(xún)系統(tǒng)服務(wù)時(shí)間的過(guò)程中應(yīng)用SQL語(yǔ)句,不僅可以保證查詢(xún)工作先后順序的準(zhǔn)確性,還能夠?qū)ο到y(tǒng)響應(yīng)指令的時(shí)間進(jìn)行計(jì)算。首先計(jì)算用戶(hù)的等待時(shí)間,然后再計(jì)算解析等待時(shí)間,最后得出的數(shù)據(jù)即為平均等待時(shí)間,該數(shù)據(jù)應(yīng)當(dāng)無(wú)限接近0。如果計(jì)算得出的數(shù)值較高,那么人們就應(yīng)當(dāng)在特殊語(yǔ)句的輔助下分析并判斷導(dǎo)致運(yùn)行效率低下的主要原因,再以此為基礎(chǔ)完成對(duì)優(yōu)化處理方案加以制定的工作。需要注意的是,用戶(hù)等待時(shí)間的計(jì)算方式是在系統(tǒng)響應(yīng)時(shí)間中將服務(wù)時(shí)間減去。
綜上所述,通過(guò)上文的分析可以看出,對(duì)Oracle數(shù)據(jù)庫(kù)所對(duì)應(yīng)應(yīng)用系統(tǒng)的性能進(jìn)行調(diào)整和優(yōu)化,是一項(xiàng)難度系數(shù)較高并且相對(duì)繁瑣復(fù)雜的工程,它需要貫穿于數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行研究和開(kāi)發(fā)的各個(gè)環(huán)節(jié)。希望文章中針對(duì)內(nèi)存調(diào)整和CPU利用展開(kāi)的討論,能夠在某些方面為科研人員提供幫助。
[1]李旭東.淺談Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化[J].信息技術(shù)與信息化,2017(03):63-65.
[2]于彥國(guó).Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化[J].電子技術(shù)與軟件工程,2015(06):214-215.
作者單位成都雙流國(guó)際機(jī)場(chǎng)股份有限公司 四川省成都市 610200