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