李靜燕 渭南師范學(xué)院網(wǎng)絡(luò)安全與信息化學(xué)院
數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能分析與優(yōu)化策略分析
李靜燕 渭南師范學(xué)院網(wǎng)絡(luò)安全與信息化學(xué)院
本文以O(shè)racle數(shù)據(jù)庫為例,對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能進(jìn)行研究,并從語句優(yōu)化、內(nèi)存優(yōu)化、結(jié)構(gòu)設(shè)計(jì)優(yōu)化等幾個(gè)方面分析了數(shù)據(jù)庫應(yīng)用系統(tǒng)的優(yōu)化策略,為數(shù)據(jù)庫的應(yīng)用提供了一定的參考。
數(shù)據(jù)庫;應(yīng)用系統(tǒng);性能分析;優(yōu)化策略
在設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)時(shí),設(shè)計(jì)人員往往無法完全預(yù)測到未來用戶在使用數(shù)據(jù)庫時(shí)所面臨的所有情況,使得設(shè)計(jì)存在一定的缺陷。這些缺陷在數(shù)據(jù)庫應(yīng)用系統(tǒng)開始投入的初期表現(xiàn)得還不太明顯,但是隨著應(yīng)用系統(tǒng)的不斷運(yùn)行,各種各樣的問題開始浮現(xiàn),設(shè)計(jì)時(shí)留下的缺陷一一暴露出來。為了改善這些缺陷,就必須要對(duì)數(shù)據(jù)應(yīng)用系統(tǒng)的性能進(jìn)行分析,并提出系統(tǒng)優(yōu)化策略,提高數(shù)據(jù)庫的使用效率[1]。
Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)是專門用于處理指定工作的應(yīng)用系統(tǒng),其處理的效率特別高。目前所使用的應(yīng)用系統(tǒng)問題主要來源于設(shè)計(jì)階段的缺陷,包括操作系統(tǒng)的缺陷、數(shù)據(jù)庫硬件設(shè)施的缺陷、程序的缺陷、內(nèi)存的缺陷、服務(wù)器的缺陷等等。要想解決這些問題,首先就得對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能有所了解。目前數(shù)據(jù)庫應(yīng)用系統(tǒng)的主要性能指標(biāo)有以下幾個(gè):
1.1 傳輸效率
傳輸效率是指數(shù)據(jù)庫應(yīng)用系統(tǒng)在一定時(shí)間內(nèi)可以傳輸?shù)臄?shù)據(jù)總量,是數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)處理速度的一種體現(xiàn)形式。目前,提高數(shù)據(jù)庫應(yīng)用系統(tǒng)傳輸效率的方法有兩種,一是提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的反應(yīng)速度,減少訪問等待的時(shí)間,進(jìn)而加快數(shù)據(jù)庫應(yīng)用系統(tǒng)處理數(shù)據(jù)的速度;二是減少數(shù)據(jù)庫應(yīng)用系統(tǒng)單次服務(wù)的時(shí)間,在同等的資源分配情況下處理更多數(shù)據(jù),提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行效率。
1.2 緩沖區(qū)命中率
用戶在使用數(shù)據(jù)庫應(yīng)用系統(tǒng)時(shí),如果需要從中提取數(shù)據(jù),所提取數(shù)據(jù)會(huì)先到達(dá)緩沖區(qū)域,經(jīng)過高速緩沖以后,再以詳細(xì)數(shù)據(jù)的形式表現(xiàn)出來。而緩沖區(qū)的命中率就是數(shù)據(jù)庫應(yīng)用系統(tǒng)的一項(xiàng)重要性能指標(biāo),其可以用來測試內(nèi)存的性能是否滿足用戶對(duì)系統(tǒng)數(shù)據(jù)處理速度的要求,具體計(jì)算方式為:緩沖區(qū)域內(nèi)的命中數(shù)除以所反映出來的數(shù)據(jù)總數(shù),得到的百分比即為緩沖區(qū)的命中率。從緩沖區(qū)提取數(shù)據(jù)的速度比從數(shù)據(jù)庫內(nèi)直接提取的速度更快,而且消耗的內(nèi)存更少,所以緩沖區(qū)的命中率一般比較高。
1.3 信息反饋時(shí)間
信息反饋時(shí)間是指從用戶提交訪問請(qǐng)求到最后的信息反饋這個(gè)過程所花費(fèi)的所有時(shí)間,也就是數(shù)據(jù)庫應(yīng)用系統(tǒng)處理數(shù)據(jù)信息所需要的總時(shí)間。信息反饋時(shí)間通常有兩種,一種是訪問等待的時(shí)間,還有一種是系統(tǒng)服務(wù)的時(shí)間,所以可以從這兩方面來提高信息反饋的速度:一是縮短用于系統(tǒng)服務(wù)的總時(shí)長,進(jìn)而提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的數(shù)據(jù)信息傳輸效率;二是錯(cuò)開用戶對(duì)資源的使用時(shí)間,盡量避免在同一時(shí)間內(nèi)對(duì)同一資源的大量訪問,縮短用戶等待訪問的時(shí)間[2]。
1.4 內(nèi)存占用情況
內(nèi)存可以分為永久內(nèi)存、運(yùn)行內(nèi)存與共享內(nèi)存三種,內(nèi)存占用主要以這三種形式存在,所以可以通過對(duì)內(nèi)存占用比例的調(diào)整,來合理分配內(nèi)存,具體方法如下:
(1)對(duì)系統(tǒng)資源的爭奪是引起響應(yīng)時(shí)間延長的主要原因,所以要合理使用系統(tǒng)資源,降低爭用率;
(2)合理分配系統(tǒng)資源,將主要內(nèi)存分配到那些能夠?qū)?nèi)存利用率最大化的問題上,從而提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的整體效益。
近年來,我國對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的研究雖然取得了一定的成果,但是與發(fā)達(dá)國家相比,還存在著一定的差距,有許多明顯的缺陷尚未解決。總而言之,我國的數(shù)據(jù)庫應(yīng)用系統(tǒng)研究還不夠透徹,應(yīng)用技術(shù)還不夠成熟,所以急需相應(yīng)的優(yōu)化改良策略來提高我國的數(shù)據(jù)庫應(yīng)用水平。對(duì)此,本文提出了幾點(diǎn)數(shù)據(jù)庫應(yīng)用系統(tǒng)的優(yōu)化措施。
2.1 SQL語句優(yōu)化
SQL語句是目前數(shù)據(jù)庫應(yīng)用系統(tǒng)當(dāng)中一種最常用的查詢語言,主要作用包括對(duì)數(shù)據(jù)的操作、數(shù)據(jù)的定義、數(shù)據(jù)的控制等等。 SQL語句的優(yōu)化是指在不影響數(shù)據(jù)庫數(shù)據(jù)處理結(jié)果準(zhǔn)確性的前提下,運(yùn)用可識(shí)別的語句,再加上索引的作用,減少同類型的數(shù)據(jù)輸入與輸出的次數(shù),將運(yùn)行效率低下的語句去除,并用性能更加強(qiáng)大的SQL語句來代替。為了提高SQL優(yōu)化語句的優(yōu)化效果,還配套了相應(yīng)的語句優(yōu)化器和語句管理器,便于SQL優(yōu)化語句的識(shí)別與管理。
2.2 內(nèi)存優(yōu)化
服務(wù)器內(nèi)存的優(yōu)化主要是對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的緩沖區(qū)域進(jìn)行優(yōu)化。擴(kuò)展緩沖區(qū)域的容量,可以使緩沖區(qū)域在同一時(shí)間內(nèi)存放更多的數(shù)據(jù),處理量大大增加,為系統(tǒng)磁盤減輕了壓力,從而提高了數(shù)據(jù)庫應(yīng)用系統(tǒng)處理數(shù)據(jù)的能力。而位于系統(tǒng)緩沖區(qū)域內(nèi)的共享池則是用于保存近期所用的SQL語句。在使用這些SQL語句時(shí),數(shù)據(jù)庫可以自動(dòng)對(duì)其進(jìn)行保存,而后如果需要再次使用同樣的語句,系統(tǒng)就可以跳過語句的識(shí)別這一步驟,省去了語句識(shí)別的時(shí)間,從而縮短了系統(tǒng)響應(yīng)時(shí)間,提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的運(yùn)行效率[3]。
2.3 結(jié)構(gòu)設(shè)計(jì)
目前的數(shù)據(jù)庫應(yīng)用系統(tǒng)有兩種主要結(jié)構(gòu),一種是傳統(tǒng)的客戶服務(wù)體系結(jié)構(gòu),還有一種是數(shù)據(jù)庫-網(wǎng)頁-瀏覽器三者結(jié)合的體系結(jié)構(gòu),系統(tǒng)開發(fā)人員在進(jìn)行數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)時(shí),一定要將體系結(jié)構(gòu)的選擇考慮進(jìn)來,選擇不同的體系結(jié)構(gòu),數(shù)據(jù)庫應(yīng)用系統(tǒng)所表現(xiàn)出的性能也會(huì)大不相同。所以,在數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)初期就要投入大量的實(shí)驗(yàn)數(shù)據(jù)對(duì)系統(tǒng)性能進(jìn)行測試,以便盡早將問題處理妥善。
數(shù)據(jù)庫應(yīng)用系統(tǒng)的結(jié)構(gòu)相對(duì)復(fù)雜,性能分析具有一定難度,所以需要從中提取幾項(xiàng)關(guān)鍵的性能進(jìn)行分析,比如傳輸效率、緩沖區(qū)命中率等等。在了解數(shù)據(jù)庫應(yīng)用系統(tǒng)的各項(xiàng)性能以后,就可以采取一些優(yōu)化策略對(duì)數(shù)據(jù)庫應(yīng)用系統(tǒng)進(jìn)行改進(jìn),從而達(dá)到提高數(shù)據(jù)庫應(yīng)用系統(tǒng)運(yùn)行效率和運(yùn)行質(zhì)量的目的。
[1]王春梅,陳學(xué)明.基于Oracle數(shù)據(jù)庫電信CRM經(jīng)營分析系統(tǒng)的性能優(yōu)化[J].計(jì)算機(jī)與數(shù)字工程,2015,v.43;No.305 03∶418-422.
[2]馬鐵冬,金軸.數(shù)據(jù)庫應(yīng)用系統(tǒng)性能設(shè)計(jì)優(yōu)化策略[J].安徽工程科技學(xué)院學(xué)報(bào)(自然科學(xué)版),2010,v.25;No.73 02∶84-87.
[3]甄福東.Oracle10g數(shù)據(jù)庫系統(tǒng)性能優(yōu)化與調(diào)整[J].電腦知識(shí)與技術(shù),2010,v.6 22∶6151-6152+6157.
李靜燕(1974.12--),女,漢族,陜西渭南人,講師,碩士,主要從事數(shù)據(jù)倉庫與數(shù)據(jù)挖掘研究