?

基于ORACLE數據庫應用系統的優化途徑研究

2016-08-19 18:48林曉燕
電腦知識與技術 2016年20期
關鍵詞:應用系統Oracle數據庫優化途徑

林曉燕

摘要:數據庫的性能對數據庫應用系統的實用性有著直接的影響。但大多數據庫在經過一段時間的使用之后都會有不同程度的問題產生,例如操作系統等。因此,對數據庫應用系統的優化途徑進行研究和探討是極有必要的。筆者首先簡要闡述了ORACLE數據庫應用系統的優化結構,包括相關理論的概述,評估標準以及優化的主要內容等,并提出一般情況下的數據庫優化技術,例如索引、查詢方式的優化,以及并行優化等。最終對優化結果進行檢驗,并詳細分析了實例中涉及的設計和優化內容。

關鍵詞:ORACLE數據庫;應用系統;優化途徑;技術

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)20-0003-02

數據庫應用系統是信息技術發展和革新速度較快的內容之一,在大數據被充分應用于生產和生活的新時代,數據庫應用系統已經逐漸上升到應用體系的基礎和關鍵部分。自上世紀中期開始至今,數據庫應用系統逐步成為我國現代化計算機產業的基礎工程,對其的運用領域也在不斷擴大,但與其他發達國家相比,仍然存在技術和性能上的差距。因此,數據集是否能高校運轉、其技術是否能得到更新是當前我國數據庫建設的重要任務。

1 ORACLE數據庫應用系統的優化結構

1.1 優化概述

針對數據庫應用系統的優化是一個動態的持續過程,通過對程序的優化、參數的改變等方式來達到優化的目的。其中,對數據庫性能的調整包括硬件組成、操作程序,以及對所有訪問的程序和應用進行理解和優化。本質上說,系統的優化即是指有目標的對組成進行協調,以實現性能的優化,從而使得數據應用系統的反應速度得到提升。對數據庫應用系統進行優化的基本原則是盡量通過最少的空間來獲取更多的數據。簡單來說,對數據的優化和調整是一個不斷往復的過程,若要實現系統的優化,就需對其進行合理的調整,確認優化結束,再檢驗調整的成果,并根據結果進行再次優化,指導達到預定的目標。數據庫的整個周期大致可劃為三個過程,即制定、開發和完成。其中,在所涉及環節進行優化的效率最高,其耗費的資源也最少。

1.2 數據庫評估指標

數據庫的評估指標主要包括五個內容。

第一,應用系統吞吐量,也叫系統處理量。是指在規定的時間內數據庫實現的SQL語言的數量,一般以每秒鐘的完成量來表示。吞吐量的提升有兩個方法,一是通過降低服務時間,另一個是通過降低數據庫的反應時間來實現吞吐量的提高。

第二,數據反應時間。即是使用者的響應時間,指使用者從上傳SQL語言到取得結果的第一部分所花費的時間,通常以秒或毫秒為單位。反應時間可劃分為CPU時間和使用者等待時間,即提高響應時間的方式有提升吞吐量和降低使用者同時訪問的發生率。

第三,命中率。Oracle用戶需要的信息一般都是經過緩存來進行存入和獲取,因此命中率是用來表示使用者對系統給予的數據是否感到滿意。

第四,存儲情況。評定內存的合理使用與否,主要有兩個方面,一是將重點放在處理能夠帶來最大利益的挑戰,二是盡量減少或清除瓶頸。

第五,磁盤I/O。數據庫中的每一個指令都有可能產生I/O,通過對I/O發生機率的降低,來縮短用戶的響應時間。

1.3 優化的主要內容

具體的優化主要包括六個內容。

1)設計的優化。若要使Oracle數據庫的性能達到最優,就需對設計方案進行優化。如果方案設計出現偏差,在之后的開發或使用過程中即使再進行優化效率都不高,因此要提升數據庫的性能,需從設計方案的優化開始。

2)結構設計的確認。在確認系統之前,應充分考慮到其所需的結構,不同的模式適應不同的應用程序結構,最優搭配才能使數據庫的性能最優。

3)程序的調整。數據表明,接近三分之二的系統優化取決于對應用程序的調整,其對數據庫的影響最終反映在SQL語言上面,因此通過提高SQL語句即能夠實現數據庫應用系統的優化。

4)存儲功能的調整。SGA是Oracle實例的組成部分之一,其的使用對系統的性能影響較大。因此對SGA的大小進行優化即可幫助系統性能的優化。

5)磁盤I/O的優化。該操作屬于消耗最大的操作指令之一,對其優化的程度十分重要。

6)操作系統的優化。操作系統是否優化能夠直接影響數據庫系統的性能,主要從Oracle的規劃、服務器等方面進行調整。

2 ORACLE數據庫應用系統的優化途徑

2.1 索引優化

索引的優化主要包括哈希索引、位圖索引、分區索引、以函數為基礎的索引四個內容。HASH結構主要用來存儲碼值,當HASH函數被應用于碼值時,HASH函數以近似于隨機的方式進行分布。哈希索引的訪問速度較快,但要使用該索引就必須先建立一個群集,通過指令來告訴群集,如何進行存儲和整合。位圖索引在進行數據載入時,一般來說要比B*樹的效率更高一些。位圖索引的加入主要是為了適應特殊的查詢情況,一般適用于DDS-Decision Support System和數據庫,其在普通的行為中并不常用。分區索引即是指將索引劃分成許多部分,主要分為本地索引和全局索引,每個索引類型中又根據有無前綴分成兩種子類型。通過分區索引之后,可將不同的片段進行單獨訪問或存儲,這是索引沒有的功能。以函數為基礎的索引使得使用者能對正在進行運算的數據進行索引。也就是說,以函數為基礎的索引能夠允許多種方式和語句的搜索和查詢。

2.2 查詢優化

查詢優化主要通過對SQL的轉換來進行。當SQL語句表達查詢時,其方式較多。Oracle數據庫能夠實現復雜的SQL轉換,其目的是將既定的SQL轉換為含義相近且性能更優的數據。Oracle能夠進行多種SQL轉換,并可大致將其分為兩種類型,一類是試探查詢轉換,一類是以成本為基礎的轉換。前者按其復雜程度又可分為簡單合并和復雜合并兩種類型。以開銷為基礎的轉換主要包括實體化視圖轉換、OR擴展、星型轉換、外連接試圖的關鍵詞下推、連接排序等內容。其中OR擴展技術能夠將帶有OR的查詢指令置換成沒有OR的查詢指令,而星型置換主要用于數據庫的模型建設,可用來存儲數據。查詢優化是數據能否獲得最優性能的重要因素,ORACLE的查詢優化功能較多,不僅僅可用于各數據倉庫用戶的訪問,還能在用戶查詢時自動進行調整。

2.3 并行查詢優化

并行處理技術能夠對TB級的數據進行訪問,因此其在數據庫技術中占有重要地位??梢哉f,如果沒有此技術,大數據群集將不復存在。所謂并行處理就是指通過多個中央處理器和I/O對單一數據庫進行操作。并行的類型主要有并行查詢、并行DML,以及并行DDL三種操作類型。并行處理的原理是將一個數據劃分為多個部分,對此技術進行優化,重點是怎樣做出將其劃分為更小的部分的正確決定。若使用Oracle的非靜態處理體系,能夠使得資源共享,此時并行處理和劃分決策并不互相沖突,也不受制于任何的非動態數據分布。Oracle數據庫能夠對其中的任何內容進行操作,并以共享所有內容的措施建立處理體系。因此,不論是將數據存儲到獨立的區域,還是設定新的索引指令,其都能快速高效地完成并行。

3 ORACLE數據庫應用系統的優化實例

3.1管理系統的綜合設計

以聯通應用系統的綜合設計為例。該系統在聯通的運營管理中處于極為關鍵的地位,其是以聯通管理為基礎形成的覆蓋了聯通大部分業務的管理系統。在該系統中,各類運行程序是互相影響和可連接的關系,各個拆分系統進行數據和信息的傳輸,以實現資源共享。系統的綜合結構主要包括高速網絡、由UNIX主機組成的服務器、存儲空間等部分組成。網絡結構的連接是通過廣域網接通到防火墻,再連接到局域網。服務器的主機分為數據庫和運用以及相關的備份服務器。其中數據庫主要用于信息的解決和計算;運用服務器主要用于對涉及的應用程序進行分配;而備用服務器則用于突發情況的應對,以保證系統的運轉效率。另外,對管理系統的綜合設計還包括應用程序的邏輯結構,整個結構主要包括三個部分,即用于與客戶進行交互的客戶層,接用戶的要求指令進行處理并發展結構的中間層,以及負責處理信息、接收來自中間層所傳輸的指令進行處理并將最終結果反饋的數據庫層。

3.2 SQL的優化

ORACLE數據庫是目前行業內應用頻率最高的數據庫之一,其利用不同的SQL語句來對其中的內容進行處理或操作。SQL語句大致包含了系統控制語言、信息掌控語句、信息定義語句等內容。其中數據操控語句主要負責進行數據的查詢或掌控,包括信息的插入、更新以及刪除等操作。信息定義語言主要負責對數據庫服務主體的管理,即建立、修改或清除等。系統控制語言主要職責是負責對數據庫實例的屬性進行修改和更新。前文有述,相同的SQL可以利用不同的方法來操作,例如索引、哈希連接等。因此對于SQL語言的執行來說,其優化器的優化方式的選擇能夠直接影響最終的優化效果,優化器的模式不同,則其對SQL語句發生的執行指令也可能不同。例如,若SQL語言中的任何一個表在整個庫中有信息存在,則可采用CBO,并將吞吐量最佳作為優化器的優化目的。另外,索引對SQL的優化影響主要體現在對其訪問途徑的改變,選擇正確的索引方式是SQL語言能夠進行優化的核心所在。

3.3 優化ORACLE存儲空間

在聯通應用系統的綜合設計中,數據庫內存空間為8G,其分配情況大致如下:將內存的二分之一劃分給Oracle,操作系統的占用空間約為1G,剩下的部分全部用來做備用存儲。劃分給Oracle的存儲空間包括PGA以及SGA兩個部分。Oracle在進行數據提取時,一般在存儲空間中查詢,若查詢失敗則讀取磁盤內存,在其中查找需要的數據和信息。由于劃分給Oracle的存儲空間并不充足,因此可對其相關參數進行調整來增加其存儲空間的大小。例如將LOG_BUFFER的內存從原來的500k增加到1M等,進行優化之后Oracle的存儲空間能夠占到總數的三分之二左右,以達到Oracle應用系統的性能優化目的。

4 結束語

嚴格來說,數據庫的優化除了對當前的應用程序和信息進行優化之外,還滲透于整個數據庫的所有階段,例如編碼、實驗等。在數據庫優化的每個環節,都需要對數據庫應用系統的性能優化進行細致的分析和規劃。應用系統性能降低大多是源于過度的消耗,因此在對數據庫進行優化時,對其設計方案和硬件設施進行優化是幫助提高性能的關鍵所在,從而實現應用系統的優化和性能提升。

參考文獻:

[1]王春梅,陳學明.基于Oracle數據庫電信CRM經營分析系統的性能優化[J].計算機與數字工程,2015(3):418-422.

[2]楊嵩.淺談Oracle數據庫應用系統的性能優化[J].計算機光盤軟件與應用,2015(3):111-112+115.

[3]李榮會,周觀民.Oracle數據庫應用系統性能優化問題探討[J].數字技術與應用,2012(6):215-216.

[4]袁佰順,朱擁軍,李曉鶴.基于ORACLE的隴東南區域自動氣象站數據庫設計及應用[J].干旱氣象,2014(3):475-480.

猜你喜歡
應用系統Oracle數據庫優化途徑
高校行政人員的績效管理及其優化途徑
事業單位檔案管理工作優化途徑分析
市場經濟下的城鄉規劃資源配置優化途徑
企業云平臺建設研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合