韋德昌 遼寧錦州渤海大學信息科學與技術學院
Oracle數據庫應用系統的性能優化
韋德昌 遼寧錦州渤海大學信息科學與技術學院
Oracle是被人們熟知的數據庫,隨著數據庫的用戶占用率不斷增多的現象,數據庫的整體性能出現滑坡。本文提出了關于Oracle數據庫性能優化問題以及改善方案,直接影響系統性能和數據庫運行效率,通過研究和分析哪些的因素能夠影響Oracle數據庫的性能優化,確定一種數據優化方案為本文的研究目標,其中包括:內存優化技術、表分區技術、I/O優化技術、索引技術和SQL優化技術等,期望通過本文的方法使得數據庫操作性能達到最優化,經過本文研究表明:優化的系統性能和系統運行效率都得以改善。
Oracle 數據庫 應用系統 性能優化 內存分配
當前,Oracle數據庫被廣泛地應用到各種領域中,如政府機關、公安警務、電信業務、金融領域、能源等多個職能部門,并已逐漸深入到企業數據庫管理平臺,但是隨著Oracle逐漸深入擴大,Oracle是用戶使用量最多的管理系統,對于選擇大型數據庫作為軟件開發的基礎平臺而言,是軟件運行的基礎部分。同時,系統性能也是數據庫評價的重要參數。但是,在實際實踐中,隨著用戶量不斷增多和訪問量急劇上升,系統中需要處理的數據不斷增多,系統的性能也隨之下降,有必要對其性能進行優化,因此,在滿足系統需求條件之下,數據庫性能優化變得極其重要,數據庫性能處于最佳和系統開銷最小,以達到系統運行的最優的狀態。
2.1 如何提高系統吞吐量
數據庫吞吐量按照其在單位時間內(單位:秒)所執行的SQL語句總共條數,其公示表示為:吞吐量=系統執行事務語句條數/單位時間(秒),通常用TPS表示吞吐量,其最終要實現性能優化問題,提高吞吐量是對數據庫系統性能加以提升。
2.2 如何縮短響應時間
數據庫系統的響應時間需要提交到后臺,提交SQL事務后返回查詢結果共計響應時間,為了提升系統的整體性能指標,通過減小系統用戶和請求時間與系統響應時間之差獲取的時間戳,來實現縮短用戶等待時間的目的,通過縮短系統響應時間,既可實現減少用戶請求時間,并提升系統性能和資源使用比。
2.3 如何優化磁盤I/O
Oracle將數據儲放磁盤或者內存數據塊中,如果想要往數據庫中讀寫數據操作時,必須有I/O操作,合理規劃磁盤的讀寫數據操作,基于高速緩存技術實現吞吐量的提高,用戶請求縮短系統響應時間,有效利用系統物理內存空間,避免過多的使用磁盤I/O讀寫操作。
2.4 如何提高數據庫命中率
Oracle數據庫用戶進程所使用的全部數據盡量都在高速緩沖區中獲取,因為針對高速緩沖區的讀寫速度快。用戶獲取數據目標能否在緩沖區中得到滿足,并縮短了數據庫的響應時間,提高在高速緩沖區數據讀寫命中率,以這種方式衡量數據庫系統性能的一種方式。
2.5 如何實現合理使用內存
在數據并發量要求較大的情況下,如果Oracle數據庫內存空間不夠則影響數據庫處理效率降低,延遲用戶請求的響應時間,如果內存空間合理使用,多數情況下可以得到最大效率和占用最小的系統內存空間,以這兩個評價參數作為合理使用內存的判斷,通過合理使用系統的內存空間,方可大大提高數據庫的使用性能。
2.6 如何減小磁盤排序
當用戶請求提交的某一條SQL事務時,此事務中包括了聚合函數或者數據排序時,有可能數據排序在內存中實現,或許在物理磁盤上實現數據排序的功能。但是,由于數據庫讀寫操作在物理磁盤上進行,再加上磁盤自身結構存在的問題,其實現讀寫操作的速度遠遠低于位于內存中的數據,因此,數據庫的優化原則避免在物理磁盤上實現數據排序操作。
影響數據性能的原因有很多種因素,例如:操作系統性能、CPU參數設置、內存分配不當、Oracle數據庫配置問題、數據讀寫的I/O操作沖突、數據在網絡傳輸速度偏低以及SQL語句出現邏輯錯誤等,以上因素都會影響數據庫的整體性能。
①操作系統性能。Oracle的服務器在某種程度上所依賴于運行在操作系統上的服務器,操作系統參數配置不當會影響數據的性能。
②CPU參數設置。CPU是數據庫運行的重要硬件,CPU資源被事務占用過高的比例,會導致其他事務暫停運行,而使其他事務的響應時間延遲,當系統空閑時,CPU占用率已經達到80%,表明Oracle服務器參數設置不當。
③I/O數據讀寫沖突操作。由于磁盤操作只運行一個進程讀寫操作,當幾個進程同時進行讀寫磁盤數據時,數據庫會針對進程進行互斥操作防止數據讀寫沖突。
④Oracle參數設置。后臺進程與實例之間都位于系統的內存中,正確設置Oracle參數會優化數據庫系統性能。
⑤內存分配不當。當操作系統為了擴大虛擬內存而進行重新分配內存,它實際上利用了磁盤空間。當實際內存不能滿足軟件需求時,操作系統不斷的從磁盤空間與內存進行頁面的替換操作,優化內存分配不當操作的主要目是為了減少內存交換次數,減少分頁,盡量在高速緩存中進行數據讀取操作等。
⑥數據在網絡傳輸速度偏低。網絡在某種程度上影響數據庫系統的整體性能,如果網速慢則導致網絡負荷量增加,從而降低數據的傳輸速率和系統的吞吐量,延長用戶請求等待的響應時間。
⑦SQL語句出現邏輯錯誤。存在大量遞歸的SQL事務,如果全表掃描所需要的等待時間較長,數據庫表結構設置和約束條件設置不合理,不合理的設置I/O數據讀取操作,使用非標準SQL語句參數,使用執行效率低的SQL事務實現數據的讀取操作。
4.1 優化軟件系統
數據庫的性能體現在軟件系統性能上,很多問題由于軟件系統某些缺陷導致數據庫的死鎖、運行效率降低等。企業的信息化系統為了加快軟件系統的開發進程,對軟件系統開發和測試設計上不合理,系統測試不全面、不合理、不精確。例如說,在進行大規模系統測試時使用簡單的測試方案,系統在運行一個時期之后出現性能下降的現象,這表明軟件的整體性能存在問題的體現。測試時必須要結合多用戶、高并發量的測試過程,并充分分析測試結論。一個軟件系統的整體性能的優劣完全取決于Oracle數據庫的性能。
4.2 優化數據庫的SQL語句
SQL語句的優化是提高數據庫性能的重要方面。優化的SQL語句不僅降低I/O數據讀取操作次數,而且重要的是降低占用網絡傳輸帶寬。因此,高可靠的數據庫系統不單單是完成簡單的數據存取操作,更重要的是完成已經優化的SQL事務,從根本上提高數據庫系統運行效率。常見的SQL優化語句包括下面幾個:
為多個數據表建立索引結構、盡量避免語句操作在字符串查詢結構中包含多個模糊字母,并盡量使用讀操作模擬加鎖操作等。
數據庫系統的全部操作都是通過執行SQL事務來完成的,其中不乏有簡單的增刪改查操作。因此,在很大程度上,Oracle數據庫的整體性能好壞決定SQL事務的運行效率,為了盡量提高SQL事務的運行效率,另外,編寫SQL語句應該關注下面的內容:
①建立數據表分區,減少全表掃描操作,占用系統內存,實現數據分區查詢操作。
②對于常用數據表實現查詢操作,建立表索引以減少執行的SQL事務數量。
③常用的多個數據表存儲到統一的數據塊中。
“以我觀物,萬物皆著我色彩”,這一段歌詞中豐富的典故使用加上恰如其分的修辭格使人們瞬間產生在“名落孫山”的秀才眼中世界原來是如此悲涼。
④在數據查詢時,針對需要多表連接查詢的數據操作需要有充分表連接條件。
優化Oracle數據庫系統性能需要通過實踐積累經驗、總結的改進過程,必須要熟悉影響數據庫整體性能的主要因素,針對影響因素而采取不同方案加以優化系統性能,同時也要考慮到基于先進優化技術對數據庫系統加以優化操作,使得系統的整體性能達到最優的狀態。
4.3 優化數據庫系統內存參數
SGA表示數據庫系統內存的全局參數設置區。它能夠被服務器和聯網用戶所共享,其中:共享數據池、高速緩沖區,日志訪問區。共享數據池是存放SQL事務和數據字典的空間。高速緩沖區的緩存空間越大,表示可容內存數據多,磁盤I/O操作次數減少,數據庫性能就得到極大優化;日志訪問區如果設置緩存區過小,會導致存儲空間不足的情況,降低數據庫系統的性能。
4.4 優化數據庫緩沖區性能
為減少訪問磁盤I/O操作帶來的開銷,應優化高速緩沖區的空間,使得進程盡量在高速緩沖區上獲取數據,盡量減少用戶請求時發生等待時間。當加大BufferCache的存儲空間時,可以設置DB_ CACHE_SIZE參數變大,使用多個數據緩沖池時,緩存池中數據盡量保存在其中,通過使用多個數據緩沖池的目的是為了提高數據在高速緩存區上的命中率。
4.5 優化磁盤I/O
數據庫要實現將最終數據存儲到物理磁盤上。因此,避免不了發生磁盤I/O讀寫操作,數據庫性能也因此受到影響,此時已經消耗Oracle數據庫最多的操作時間,為了避免對系統性能帶來的影響,監控磁盤I/O讀寫操作是非常關鍵的步驟。影響磁盤I/O讀寫操作包括:磁盤讀寫進程死鎖現象、I/O操作次數過多等。
4.6 磁盤碎片整理
磁盤數據碎片的產生由于刪除數據導致的,因為系統刪除數據操作出現,系統數據存儲區域不斷發生變化,磁盤數據碎片分別為:表級碎片和索引級碎片。
①表級碎片由于設置合適的數據塊數量,由于數據庫的數據存儲是間斷的,在創建數據庫表結構時,根據用戶需求數據記錄大小來選擇相應的數據規模,提高系統中數據塊利用效率。
②索引級碎片是因為查詢表的索引結構過于頻繁而致,經過B-TREE數據結構和葉子的數據排序而導致,可以減少查詢索引結構的數據,尤其是系統中變化頻率較少數據塊,目的是降低索引碎片的形成。
軟件系統工程,需要工程師認真設計系統優化問題,對數據庫性能進行優化操作。Oracle數據庫性能優化設計與優化階段,需要在數據庫運行時不斷優化系統的性能,為優化一個高效的數據庫系統打下基礎。
[1]蓋國強.循序漸進Oracle數據庫管理、優化與備份恢復[M].北京:人民郵電出版社,2007
[2]趙夢勤,李秀蘭.ORACLE數據庫應用系統的優化策略[J].計算機工程與應用.2003(27):217-218