王宇
摘要:Oracle數據庫系統(tǒng)性能的高低、好壞與多因素相關,除了傳統(tǒng)的網絡性能、操作系統(tǒng)等會對其性能造成影響外,數據存儲結構、應用程序等,也會對其性能產生影響。本文首先探討了Oracle數據庫的優(yōu)化調整技術,即分別從數據庫運行環(huán)境優(yōu)化、應用優(yōu)化及數據庫參數優(yōu)化等方面,指出此數據庫的優(yōu)化方法,望能為此領域研究有所借鑒。
關鍵詞:Oracle數據庫;系統(tǒng)性能;優(yōu)化
Oracle數據庫是一種在安全性、可靠性與兼容性方面均高的大型數據庫,被廣泛應用在生產制造、通信及金融等領域。為了能夠更好的滿足Oracle數據庫的應用需要,對信息時代下所產生的大量數據進行管理與利用,為業(yè)務應用提供更好支撐,這對于Oracle數據庫的優(yōu)化至關重要。在現實應用與操作中,常會出現Oracle數據庫系統(tǒng)性能變差的情況,現階段,性能惡化多表現為需花費用戶較長的等待時間、系統(tǒng)響應時間較長等。而對其進行性能優(yōu)化,主要使結合現實情況及需要,調整那些對其性能造成影響的因素,從中獲得更優(yōu)優(yōu)質的運行狀態(tài),使性能最佳。本文就Oracle數據庫系統(tǒng)性能調整與優(yōu)化策略作一剖析。
1.環(huán)境優(yōu)化
1.1內存的優(yōu)化
(1)對內存進行合理配置。在配置系統(tǒng)內存時,需達成如下目標:(1)盡量減少分頁;(2)減少內存交換;(3)盡量使系統(tǒng)全局區(qū)(SGA)駐留內存。因此,可采取如下措施,對內存進行合理配置:(1)用“sar p”命令,或者是“vmstat”命令,對分頁進行有效監(jiān)控;(2)盡量規(guī)避運行那些無用、沒必要的應用程序或系統(tǒng)進程;(3)把部分工作轉移至另外一個操作系統(tǒng)當中;(6)在對操作系統(tǒng)的核心進行配置時,盡量減少內存;(7)使SGA始終處于單個共享內存段當中。(2)優(yōu)化操作系統(tǒng)參數。針對SGA來講,其較大程度影響著數據庫的性能,而在設置SGA時,又受操作系統(tǒng)部分數據的影響與制約。比如Solaris操作系統(tǒng)(SUN公司),/etc/system文件當中的若干參數,會對Oracle當中的內存分配造成直接影響,因此,需要根據實際需要,對各個參數進行合理配置,使系統(tǒng)保持高質量運轉狀態(tài)。
1.2對數據庫磁盤輸入/出進行優(yōu)化
磁盤輸入/出(I/O)速度直接會影響到系統(tǒng)性能。將磁盤I/O問題解決好,可大幅提升性能。(1)使用磁盤陣列。伴隨文件系統(tǒng)與硬件的改進,在提升Oracle數據庫的I/O操作時,RAID尤為關鍵。在整個RAID架構當中,數據在多個磁盤中存放,以奇偶校驗及奇偶拆分的方式,實現數據緩存、數據分配與數據沉余,實現數據庫相應I/O符合的減少。針對RAID來講,其擁有諸多標準,比如RAID-1+0、RAID-1等。針對磁盤陣列來講,因其可以將I/O負擔、安全等較好的解決掉,因而在多領域中得到廣泛應用。(2)使用分區(qū)。針對分區(qū)方法來講,其那是提升與大型表相關性能的最直接且有效方法。對索引的較小片段進行訪問,或直接訪問一個表,而并非對整個索引或表進行訪問,分區(qū)能夠提升效率;針對相關數據而言,其在物理層面上時分開的,但如果在具體的邏輯層面上,便為一起的。借助分區(qū)能提升事務處理、維護操作及恢復等方面的性能。(3)用裸設備。所謂裸設備,從根本上來講,就是針對沒有經過格式化處理的磁盤,進行相應分區(qū),Oracle能對其進行讀與寫,且無UNIX/IO緩沖開銷。另外,針對裸設備而言,其能夠用于重做日志文件,還能用作寫操作頻繁且順序訪問的數據,但在程序中無法使用備份。
2.數據庫參數優(yōu)化
(1)設置SGA_MAX_SIZE。一般情況下,在起初階段便將SGA_MAX_SIZE設置成物理內容的25%,若用戶量比較大,或存在不足,系統(tǒng)均會自動將其設置成15~20%,若用戶量比較少,或內存充足,則準允使用30~50%的物理內存。此外,還需要指出的是,SGA_MAX_SIZE的大小對諸多參數相應粒度大小具有決定作用。如果SGA_MAX_SIZE小于128Mbyte,則其粒度大小是4Mbyte;如果大于128Mbyte,那么粒度大小使16Mbyte。(2)設置PGA_AGGREGATE_TARGET。其乃是Oracle在全部回話當中分配的會話PGA總內存,同時還是Oracle所引入的具體參數,能夠對_SIZE類型參數進行替換,在對PGA_AGGREGATE_TARGET的各項參數進行設置時,需要把WORKAREA_SIZE_POLICY設置成AUTO。而在實際使用中,其好處即為能夠對用戶會話的總內存使用量進行設置,以此來減少分頁。而對于PGA_AGGREGATE_TARGET的參數來講,需設置成ESTD_PGA_CACHE_HlTPERCENTAGE>95%的值,如此一來,便能從中得到更高的緩存命中率。
3.應用優(yōu)化
(1)索引優(yōu)化。索引較大程度影響著數據庫I/O。若借助索引來對數據庫進行訪問,能使原先對大型表的全表掃描大幅減少,因而可時I/O開銷減少。而在使用索引時,一般情況下,能提升DELETE語句的性能,而且還能時UPDATE的性能得到提升,但會使INSERT語句的性能降低,所以,索引并不是越多就越好,在實際使用索引時,需始終秉持如下原則:(1)針對那些更新緩慢的靜態(tài)大表,則建立索引;(2)為了能夠更好的查詢語句,僅選擇少量字段開展查詢的表,則建立索引;(3)如果常需連接,但無指定外鍵的列上,需建索引。(2)SQL語句的優(yōu)化。在對數據庫進行操作時,SQL為其唯一途徑,決定著數據庫系統(tǒng)的性能。針對SQL語句來講,其消耗的數據庫資源占70~90%。在優(yōu)化SQL語句時,就是把性能比較低的SQL語句向目的相同且性能更佳的SQL語句轉換。
4.結語
綜上,Oracle系統(tǒng)有著比較龐大的體系,且伸縮性方面也比較強,需給予長期維護。本文基于Oracle數據庫系統(tǒng),分別從數據庫運行環(huán)境優(yōu)化、應用優(yōu)化及數據庫參數優(yōu)化等方面,指出了針對性能的具體調整與優(yōu)化策略,希望對此領域研究有些許幫助。
參考文獻:
[1]谷小秋,李德昌.索引調整優(yōu)化Oracle 9i工作性能的研究[J].計算機工程與應用,2005,41 (26):174-176.
[2]張學義,王觀玉,黃雋.基于Oralce數據庫SQL查詢優(yōu)化研究[J].制造業(yè)自動化,2011,33 (2):116-118.
[3]郭敏,郭靖.Oracle 10G數據庫性能優(yōu)化的研究[J].武漢理工大學學報,2005,27 (10):103-105.