江蘇省信用再擔(dān)保集團有限公司 常正青
基于Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化與性能調(diào)整研究
江蘇省信用再擔(dān)保集團有限公司 常正青
在計算機系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)發(fā)揮著數(shù)據(jù)存儲的功能,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,在網(wǎng)絡(luò)中出現(xiàn)了大量的計算機病毒,這些病毒導(dǎo)致數(shù)據(jù)庫系統(tǒng)所面臨的風(fēng)險也越來越大,如何保障信息安全是數(shù)據(jù)庫系統(tǒng)所必須考慮的問題。在一些企業(yè)中,數(shù)據(jù)庫系統(tǒng)的工作效率和信息安全,直接關(guān)系著企業(yè)的運行狀況。本文就Oracle數(shù)據(jù)庫系統(tǒng)的應(yīng)用及優(yōu)化,做相應(yīng)的研究。
性能優(yōu)化;內(nèi)存分頁;響應(yīng)速度
計算機技術(shù)已經(jīng)融入到人們的工作和生活,在使用計算機進行辦公和娛樂時,都離不開數(shù)據(jù)的傳輸,那么這就需要數(shù)據(jù)庫系統(tǒng)的支持和服務(wù)。Oracle數(shù)據(jù)庫系統(tǒng)是一種常見的關(guān)系數(shù)據(jù)庫系統(tǒng),它主要應(yīng)用于中大型服務(wù)器中,為客戶提供優(yōu)質(zhì)的數(shù)據(jù)傳輸服務(wù)。在企業(yè)的工作中,所需要的大量數(shù)據(jù)要及時的進行傳輸,就離不開優(yōu)質(zhì)的數(shù)據(jù)庫系統(tǒng)的支持,隨著信息安全概念的深入,人們不僅要求數(shù)據(jù)傳輸?shù)馁|(zhì)量,更要求數(shù)據(jù)傳輸?shù)乃俣群桶踩?。而要想滿足以上要求,就有必要更新企業(yè)的數(shù)據(jù)庫系統(tǒng),但這無疑會加大企業(yè)的經(jīng)濟成本,因此在原有Oracle數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)之上,做好數(shù)據(jù)庫系統(tǒng)的優(yōu)化與性能調(diào)整工作,是很有必要的。
對Oracle數(shù)據(jù)庫系統(tǒng)進行性能優(yōu)化與調(diào)整,旨在提高Oracle數(shù)據(jù)庫系統(tǒng)的工作效率,提高Oracle數(shù)據(jù)庫系統(tǒng)的傳輸效率,降低Oracle數(shù)據(jù)庫系統(tǒng)發(fā)生故障的概率,因此對Oracle數(shù)據(jù)庫系統(tǒng)進行調(diào)整,主要是針對以下三個方面進行:1.提高Oracle數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度;2.提高Oracle數(shù)據(jù)庫系統(tǒng)在短時間內(nèi)的數(shù)據(jù)傳輸量;3.消除Oracle數(shù)據(jù)庫系統(tǒng)中的瓶頸。提高Oracle數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度,就意味著要縮短Oracle數(shù)據(jù)庫系統(tǒng)的響應(yīng)時間,給客戶一種一點即開的使用感受。要想實現(xiàn)這一目標(biāo),就必須要提高Oracle數(shù)據(jù)庫系統(tǒng)在短時間內(nèi)的數(shù)據(jù)傳輸量,我們知道,當(dāng)客戶將命令輸入到計算機中,SQL語句就傳遞到數(shù)據(jù)庫系統(tǒng)中,然后根據(jù)SQL語句的請求,從數(shù)據(jù)庫中調(diào)取數(shù)據(jù),如果數(shù)據(jù)庫系統(tǒng)的吞吐量較小,必然會導(dǎo)致客戶漫長的等待。因此在對Oracle數(shù)據(jù)庫系統(tǒng)進行優(yōu)化時,重點提高Oracle數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)吞吐量和響應(yīng)速度。
數(shù)據(jù)庫操作系統(tǒng)對Oracle數(shù)據(jù)庫系統(tǒng)的影響是第一位的,操作系統(tǒng)的功能是否強大和完善,都將影響Oracle數(shù)據(jù)庫系統(tǒng)的工作效率。在對Oracle數(shù)據(jù)庫系統(tǒng)進行優(yōu)化時,發(fā)現(xiàn)操作系統(tǒng)的選用不當(dāng),將會導(dǎo)致Oracle數(shù)據(jù)庫系統(tǒng)的工作效率降低,致使Oracle數(shù)據(jù)庫系統(tǒng)在調(diào)用數(shù)據(jù)時速度過慢,或無法為客戶提供更為人性化的服務(wù),降低了Oracle數(shù)據(jù)庫的服務(wù)質(zhì)量。
Oracle數(shù)據(jù)庫系統(tǒng)的工作依賴于計算機CPU的性能,CPU性能的高低影響著Oracle數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度。當(dāng)用戶提交SQL語句后,會由CPU進行處理,若此時的CPU緩存不足,將會導(dǎo)致CPU沒有充足的資源去處理這個SQL語句,致使該SQL語句變?yōu)橐粋€低效甚至無用的語句。對用戶的影響則是在多次點擊命令之后,Oracle數(shù)據(jù)庫系統(tǒng)依然沒有響應(yīng),給客戶一種系統(tǒng)延遲嚴(yán)重和卡死的感受。
磁盤性能是影響Oracle數(shù)據(jù)庫系統(tǒng)的一個重要因素,數(shù)據(jù)是存儲在硬盤上的,硬盤的轉(zhuǎn)速和傳輸速率都會影響到Oracle數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)調(diào)用速度,也就是數(shù)據(jù)庫系統(tǒng)的響應(yīng)時間。在Oracle數(shù)據(jù)庫系統(tǒng)中常常會發(fā)生多個任務(wù)進程同時訪問同一個硬盤,而該硬盤受限于自身的性能,只能滿足一個任務(wù)進程的需要,進而導(dǎo)致了硬盤I/0沖突,影響了數(shù)據(jù)的調(diào)用和存儲。
在Oracle數(shù)據(jù)庫系統(tǒng)的硬件配置中,內(nèi)存是一個非常重要的硬件。但是在Oracle數(shù)據(jù)庫系統(tǒng)運轉(zhuǎn)開以后,所需要的內(nèi)存十分龐大,因此調(diào)用虛擬內(nèi)存就顯得非常必要了,而一旦調(diào)用了大量的虛擬內(nèi)存,就會導(dǎo)致Oracle數(shù)據(jù)庫系統(tǒng)中其他功能的資源不足,進而拖累了整個Oracle數(shù)據(jù)庫系統(tǒng),導(dǎo)致Oracle數(shù)據(jù)庫系統(tǒng)運行緩慢且效率低下。
對內(nèi)存的調(diào)整和優(yōu)化,可以使Oracle數(shù)據(jù)庫系統(tǒng)的性能得到明顯提升,并且能夠滿足日益增加的用戶群體的使用需要。對內(nèi)存的調(diào)整應(yīng)先從數(shù)據(jù)庫內(nèi)存的分配開始,先檢測Oracle數(shù)據(jù)庫中內(nèi)存的使用情況,然后根據(jù)檢測結(jié)果,查看那些任務(wù)進程需要較多的內(nèi)存,由此確定需要進行優(yōu)化和調(diào)整的項目。對占用內(nèi)存較大的進程,例如deamon進程,或是其他與Oracle數(shù)據(jù)庫系統(tǒng)無關(guān)的進程,可以啟用任務(wù)管理器將其關(guān)閉。然后對內(nèi)存的分頁進行優(yōu)化和調(diào)整,使用內(nèi)存檢測指令:free檢查數(shù)據(jù)庫系統(tǒng)的內(nèi)存分頁情況,查看系統(tǒng)是否有較多的內(nèi)存分頁進程存在,若有則對內(nèi)存分頁進行處理,在處理過程中,要重點注意以下幾個代碼:vflt/s、rclm/s、page-out和page-enter,通過對這幾個代碼的分析,可以檢測出內(nèi)存分頁是否存在過多和存在故障。針對內(nèi)存分頁過多導(dǎo)致Oracle數(shù)據(jù)庫系統(tǒng)運行緩慢的情況,在硬件上可以加裝內(nèi)存條,提高Oracle數(shù)據(jù)庫系統(tǒng)的內(nèi)存容量。在系統(tǒng)的優(yōu)化上,可以將一些不必要的進程放置到其他系統(tǒng)中去,降低這一部分進程所占用的內(nèi)存資源.
對SQL語句的優(yōu)化主要是通過精煉、簡潔的SQL語句,實現(xiàn)SQL識別器的快速識別,以此達到加快Oracle數(shù)據(jù)庫系統(tǒng)的響應(yīng)速度的目的。對SQL語句的優(yōu)化應(yīng)從SQL的工作流程開始,SQL語句在輸入到Oracle數(shù)據(jù)庫后,要先由SQL識別器進行識別和分析、然后CPU進行處理并下達執(zhí)行命令、最后是反饋結(jié)果。對改過程進行優(yōu)化,可以先在Oracle數(shù)據(jù)庫中針對SQL語句設(shè)置一個內(nèi)存分區(qū),然后在該分區(qū)中執(zhí)行Hash函數(shù),以加速SQL識別器的運行速度。為了達到最佳的優(yōu)化效果,可以在內(nèi)存分區(qū)中,將一些常用的SQL語句存儲在主存中,從而實現(xiàn)當(dāng)SQL語句輸入后,先進行驗證是否有該語句,若有就直接執(zhí)行,沒有就按照SQL語句的執(zhí)行過程進行執(zhí)行,此優(yōu)化措施可以加快SQL語句的70%的工作效率。還可以使用Oracle優(yōu)化器對SQL語句進行優(yōu)化,尤其是在復(fù)雜SQL語句進入系統(tǒng)中,使用Oracle優(yōu)化器可以加速SQL語句的編譯和分析進程。在多SQL語句同時進行時,使用Oracle優(yōu)化器可以為SQL語句的分析開辟一條新的處理路徑。
通過對Oracle數(shù)據(jù)庫系統(tǒng)的分析,在找出了Oracle數(shù)據(jù)庫中存在的性能瓶頸,并提出了相對應(yīng)的優(yōu)化措施,可以極大的提高Oracle數(shù)據(jù)庫系統(tǒng)的運行效率。我們知道當(dāng)Oracle數(shù)據(jù)庫系統(tǒng)運行一段時間后,由于數(shù)據(jù)碎片和緩存的累積將會導(dǎo)致Oracle數(shù)據(jù)庫系統(tǒng)的再次卡頓,因此對Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化和調(diào)整工作,是一個長期而頻發(fā)的工作,需要及時的進行調(diào)整和優(yōu)化,才能保證該系統(tǒng)的良好運行。
[1]蔣鳳珍.Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)[J].計算機與信息技術(shù),2014,30(51): 94-96.
[2]李云波.Oracle性能調(diào)整技術(shù)研究[J].電腦知識與技術(shù),2014,4(7): 26-27.