于泳波
摘要:計(jì)算機(jī)技術(shù)在發(fā)展并服務(wù)于社會(huì)各個(gè)領(lǐng)域,并且在不斷的普及,這有效的促進(jìn)了計(jì)算機(jī)數(shù)據(jù)庫的快速發(fā)展。伴隨著數(shù)據(jù)庫的不斷更新完善,其規(guī)模在進(jìn)一步擴(kuò)大,在這種背景下數(shù)據(jù)庫往往容易出現(xiàn)出現(xiàn)響應(yīng)遲鈍、吞吐量變低的情況。對(duì)于提高Oracle數(shù)據(jù)庫運(yùn)行效率的研究一直在進(jìn)行,采取怎樣的調(diào)整措施,以能夠突破數(shù)據(jù)庫性能提升的瓶頸是當(dāng)前的重要命題。通過對(duì)當(dāng)前Oracle數(shù)據(jù)庫性能優(yōu)化現(xiàn)狀進(jìn)行闡述,總結(jié)影響數(shù)據(jù)庫性能的因素,深入探究Oracle數(shù)據(jù)庫性能調(diào)整與優(yōu)化技術(shù),以改善數(shù)據(jù)庫性能和工作效率。
Abstract: Computer technology is developing and serving all fields of society, and it is continuously popularized, which effectively promotes the rapid development of computer databases. With the continuous updating and perfecting of the database, its scale is further expanded. Under this background, the database tends to appear the situations of slow response and low throughput. The research on improving the operating efficiency of Oracle database has been ongoing. What kind of adjustment measures are taken to overcome the bottleneck of database performance improvement is the current important proposition. The current status of Oracle database performance optimization is elaborated, the factors that affect database performance are summarized, and the Oracle database performance adjustment and optimization techniques are thoroughly explored to improve database performance and work efficiency.
關(guān)鍵詞:Oracle;數(shù)據(jù)庫性能;內(nèi)存;系統(tǒng)性能;調(diào)整;優(yōu)化
Key words: Oracle;database performance;memory;system performance;adjustment;optimization
中圖分類號(hào):G250.74 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-4311(2018)13-0228-02
0 引言
數(shù)據(jù)庫技術(shù)應(yīng)用已經(jīng)受到了廣泛的關(guān)注,高端數(shù)據(jù)庫市場中Oracle數(shù)據(jù)庫已經(jīng)成為主要支柱型產(chǎn)品。但是,數(shù)據(jù)庫在不間斷的進(jìn)行大量信息的存儲(chǔ),數(shù)據(jù)量類型更加多元化、數(shù)量更加龐大,進(jìn)行數(shù)據(jù)處理運(yùn)算過程愈加復(fù)雜。這種情況下,數(shù)據(jù)庫本身的性能要求得到了新的挑戰(zhàn)。進(jìn)行合理的調(diào)整優(yōu)化,提升Oracle數(shù)據(jù)庫性能,是當(dāng)前數(shù)據(jù)庫領(lǐng)域的重要研究研項(xiàng)目。
1 Oracle數(shù)據(jù)庫性能優(yōu)化現(xiàn)狀分析
隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,信息化建設(shè)的步伐正在加快,社會(huì)各個(gè)領(lǐng)域?qū)τ?jì)算機(jī)技術(shù)、信息化建設(shè)的依賴性越來越強(qiáng),這也為市場經(jīng)濟(jì)建設(shè)與發(fā)展貢獻(xiàn)了巨大力量。為了能夠使數(shù)據(jù)庫運(yùn)算效率加快以滿足當(dāng)前不斷增加的工作任務(wù),Oracle數(shù)據(jù)庫性能需進(jìn)行進(jìn)一步優(yōu)化,以滿足用戶數(shù)據(jù)檢索過程中數(shù)據(jù)庫的高質(zhì)量并提供永久性服務(wù),信息化發(fā)展過程中數(shù)據(jù)資源的優(yōu)化利用顯得尤為重要。Oracle數(shù)據(jù)庫對(duì)于內(nèi)存空間節(jié)省方面可以極大的降低處理器的性能要求,以達(dá)到Oracle數(shù)據(jù)庫的普及和優(yōu)化。
Oracle數(shù)據(jù)庫數(shù)據(jù)庫性能的優(yōu)化與提升以數(shù)據(jù)庫的內(nèi)存配置優(yōu)化為主。首先,將SQL執(zhí)行命令的語法結(jié)構(gòu)進(jìn)行修改,通過語句精簡進(jìn)行信息量的增加,數(shù)據(jù)庫命令讀取速率、數(shù)據(jù)處理數(shù)據(jù)自然會(huì)隨之提升。之后,通過加強(qiáng)數(shù)據(jù)庫中優(yōu)化器的優(yōu)化效能使數(shù)據(jù)庫運(yùn)行過程中能夠?qū)鴶?shù)據(jù)及時(shí)處理,同時(shí)加強(qiáng)對(duì)數(shù)據(jù)信息的高效率整合,起到優(yōu)化數(shù)據(jù)庫性能的目的。當(dāng)前,Oracle數(shù)據(jù)庫性能優(yōu)化方面仍然需要依靠計(jì)算機(jī)系統(tǒng)操作為基礎(chǔ),因此提升計(jì)算機(jī)系統(tǒng)操作性能同樣能夠提升數(shù)據(jù)庫效率水平。將計(jì)算機(jī)系統(tǒng)的優(yōu)化與Oracle數(shù)據(jù)庫性能的優(yōu)化相互聯(lián)系并形成系統(tǒng)化的運(yùn)作,能夠?qū)?shí)際數(shù)據(jù)庫性能提升起到關(guān)鍵性作用。通過不同方式、形式的調(diào)整和優(yōu)化,能夠促進(jìn)數(shù)據(jù)庫性能提升,滿足人們對(duì)數(shù)據(jù)庫性能不斷嚴(yán)格的需求。
2 影響數(shù)據(jù)庫性能因素總結(jié)
2.1 數(shù)據(jù)庫磁盤性能
影響Oracle數(shù)據(jù)庫性能指標(biāo)的主要因素是磁盤性能。對(duì)于磁盤性能評(píng)測(cè),需要通過SQL語句在磁盤的I/O占用進(jìn)行計(jì)算,并且通過對(duì)最大前25位是否占用進(jìn)行對(duì)比,如果最大前25位存儲(chǔ)空間不能夠進(jìn)行SQL語句內(nèi)容的有效存儲(chǔ),那么數(shù)據(jù)庫與磁盤間的協(xié)調(diào)運(yùn)轉(zhuǎn)將形成較為復(fù)雜的處理環(huán)境,加重?cái)?shù)據(jù)庫處理任務(wù),容易造成一定的處理障礙。
磁盤中數(shù)據(jù)塊鏈接也是影響數(shù)據(jù)庫性能因素之一,數(shù)據(jù)塊是固定的存儲(chǔ)空間,因此數(shù)據(jù)塊進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí)一個(gè)數(shù)據(jù)款數(shù)據(jù)填充完成后將啟用下一個(gè)數(shù)據(jù)塊,以此類推,這樣進(jìn)行鏈接來保證數(shù)據(jù)鏈接的不間斷性和完整性。但是這也使得數(shù)據(jù)庫存在著安全隱患,數(shù)據(jù)塊鏈接成為重要的數(shù)據(jù)安全問題,一旦出現(xiàn)鏈接問題,數(shù)據(jù)庫數(shù)據(jù)的存儲(chǔ)、讀取等相關(guān)操作將發(fā)生終端,這對(duì)于數(shù)據(jù)庫性能有著直接的影響。
2.2 優(yōu)化器配置與調(diào)整
運(yùn)行優(yōu)化器可以實(shí)現(xiàn)Oracle數(shù)據(jù)庫的性能優(yōu)化,優(yōu)化器執(zhí)行SQL語句內(nèi)容是通過不同形式的路徑進(jìn)行,這有效的調(diào)整了數(shù)據(jù)塊結(jié)構(gòu),優(yōu)化了數(shù)據(jù)庫性能。例如,對(duì)于數(shù)據(jù)庫存儲(chǔ),優(yōu)化器進(jìn)行數(shù)據(jù)索引方式調(diào)整能夠優(yōu)化數(shù)據(jù)庫性能,其主要是通過執(zhí)行SQL語句中的OPTIMIZER等命令,進(jìn)而通過數(shù)據(jù)庫存儲(chǔ)路徑及方式的調(diào)整實(shí)現(xiàn)最終的數(shù)據(jù)庫性能的優(yōu)化。優(yōu)化器配置與調(diào)整過程的運(yùn)行模式選擇直接影響著對(duì)SQL語句的執(zhí)行狀態(tài),因此,運(yùn)行模式的不同會(huì)使SQL語句執(zhí)行效率有所影響,這對(duì)于數(shù)據(jù)庫處理效率有所影響。
2.3 服務(wù)器的CPU性能
Oracle數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理對(duì)服務(wù)器CPU有著較高的要求,CPU的運(yùn)行效率對(duì)數(shù)據(jù)庫的性能有著重要的影響。CPU是實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)之間數(shù)據(jù)連接、傳輸、交換等重要環(huán)節(jié)的關(guān)鍵性裝置,對(duì)數(shù)據(jù)庫關(guān)于數(shù)據(jù)存儲(chǔ)、讀取有著直接的影響,并且關(guān)乎數(shù)據(jù)庫性能的優(yōu)化提升。
Oracle數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢時(shí),查詢方式有很多種,不同形式方法的查詢使數(shù)據(jù)庫存儲(chǔ)、調(diào)用、讀取等方式也有一定的區(qū)別,這使得CPU運(yùn)行時(shí)壓力在不斷增加和變化,直接影響Oracle數(shù)據(jù)庫的綜合性能。
3 Oracle數(shù)據(jù)庫系統(tǒng)調(diào)整與優(yōu)化技術(shù)探究
3.1 規(guī)范化與反規(guī)范化設(shè)計(jì)數(shù)據(jù)庫
數(shù)據(jù)系統(tǒng)中規(guī)范化設(shè)計(jì)具有能夠有效消除數(shù)冗余、節(jié)約存儲(chǔ)空間、減少相應(yīng)邏輯和物理的I/O次數(shù)、數(shù)據(jù)信息修改速率加快等等諸多優(yōu)點(diǎn)。但是規(guī)范化設(shè)計(jì)不等于最優(yōu)性能,規(guī)范化的設(shè)計(jì)并非是最有效、最直接的運(yùn)算方式方法,部分規(guī)范化設(shè)計(jì)反而會(huì)增加數(shù)據(jù)庫運(yùn)算成本,例如進(jìn)行查詢時(shí),通過規(guī)范化設(shè)計(jì)的連接運(yùn)算使得計(jì)算機(jī)運(yùn)行消耗過大,運(yùn)行過程中效率受到一定損耗。
在此基礎(chǔ)下,部分特定查詢、應(yīng)用進(jìn)行規(guī)范規(guī)則破壞達(dá)到設(shè)計(jì)目的過程,也可以達(dá)到運(yùn)行效率、數(shù)據(jù)庫性能的提升。因此,非規(guī)范化約束的保留應(yīng)選擇性的進(jìn)行,規(guī)范化設(shè)計(jì)與反規(guī)范化設(shè)計(jì)應(yīng)結(jié)合進(jìn)行,以提升數(shù)據(jù)庫系統(tǒng)性能及運(yùn)算速率為最終目的進(jìn)行最為恰當(dāng)?shù)脑O(shè)計(jì)選擇。
反規(guī)范化設(shè)計(jì)需要將數(shù)據(jù)存取需求作為設(shè)計(jì)的主要考慮因素,從而進(jìn)行數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)和后續(xù)運(yùn)行操作。目前,反規(guī)范設(shè)計(jì)技術(shù)主要包括以下幾方面:增加冗余;派生列,對(duì)表進(jìn)行合并、分割;增加重復(fù)表等等。反規(guī)范設(shè)計(jì)是數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)中較為反常的技術(shù)運(yùn)用,因此要仔細(xì)斟酌后才可進(jìn)行實(shí)際應(yīng)用,對(duì)數(shù)據(jù)存取需求、實(shí)際性能特點(diǎn)需要進(jìn)行詳實(shí)的研究分析方可進(jìn)行反規(guī)范化設(shè)計(jì)。規(guī)范化設(shè)計(jì)與反規(guī)范化設(shè)計(jì)并非是水火不容、相互對(duì)立的,通過兩者的結(jié)合和互補(bǔ),取長補(bǔ)短,能夠改善數(shù)據(jù)庫結(jié)構(gòu),提升數(shù)據(jù)庫性能。
3.2 數(shù)據(jù)庫內(nèi)存區(qū)的調(diào)整與優(yōu)化
Oracle數(shù)據(jù)庫中的內(nèi)存區(qū)是數(shù)據(jù)的直接存儲(chǔ)場所,其結(jié)構(gòu)分配對(duì)數(shù)據(jù)庫的工作性能有著直接影響。因此,數(shù)據(jù)庫中的內(nèi)存區(qū)資源通過進(jìn)一步的優(yōu)化可以對(duì)Oracle數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行有效調(diào)整。數(shù)據(jù)緩沖區(qū)、共享池、PGA是Oracle數(shù)據(jù)庫的三大內(nèi)存區(qū),它們具有不同的運(yùn)行方式,在進(jìn)行優(yōu)化時(shí)也有著不同的特點(diǎn)和方式。
針對(duì)數(shù)據(jù)緩沖區(qū)的優(yōu)化,主要是通過數(shù)據(jù)訪問方式的改變來進(jìn)行。簡單而言,用戶訪問位于緩沖區(qū)數(shù)據(jù)時(shí),由于是直接由數(shù)據(jù)緩沖區(qū)調(diào)取數(shù)據(jù)進(jìn)行顯示,數(shù)據(jù)庫能夠直接將緩沖區(qū)的數(shù)據(jù)呈現(xiàn)給用戶,這是以縮短系統(tǒng)響應(yīng)時(shí)間的方式進(jìn)行用戶數(shù)據(jù)訪問優(yōu)化,大大縮短了用戶的訪問時(shí)間,提高了訪問效率。但是,數(shù)據(jù)訪問時(shí),當(dāng)數(shù)據(jù)資料在共享池或PGA時(shí),用戶訪問時(shí),系統(tǒng)需要先將數(shù)據(jù)資料由共享池、PGA發(fā)送到緩沖區(qū)后,才能夠進(jìn)行對(duì)用戶的信息表達(dá),這不利于數(shù)據(jù)庫性能的提升,以及工作效率的保證。因此,優(yōu)化數(shù)據(jù)庫共享池性能是實(shí)現(xiàn)數(shù)據(jù)庫內(nèi)存區(qū)調(diào)整優(yōu)化的重點(diǎn)方向。具體的優(yōu)化措施則是調(diào)整共享池的大小,將其與數(shù)據(jù)緩沖區(qū)工作效率相對(duì)應(yīng),通過協(xié)調(diào)系統(tǒng)結(jié)構(gòu)中信息資源的調(diào)用模式實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)訪問速率的提升,最終實(shí)現(xiàn)數(shù)據(jù)庫性能提升。
3.3 數(shù)據(jù)碎片的有效整理
在數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理時(shí)數(shù)據(jù)碎片的產(chǎn)生是難以避免的,而且由于Oracle數(shù)據(jù)庫數(shù)據(jù)量非常龐大,這使得數(shù)據(jù)庫系統(tǒng)處理運(yùn)作過程中數(shù)據(jù)碎片的處理有著嚴(yán)格的要求。有效的進(jìn)行數(shù)據(jù)碎片處理能夠?yàn)閿?shù)據(jù)庫節(jié)約更多的可用空間,也能夠規(guī)避碎片影響數(shù)據(jù)庫處理運(yùn)行的風(fēng)險(xiǎn)。Oracle數(shù)據(jù)庫中關(guān)于碎片處理主要分三種,分別是數(shù)字庫級(jí)、索引級(jí)、數(shù)據(jù)模塊級(jí)。在進(jìn)行碎片處理之前,首先要對(duì)數(shù)據(jù)索引類型進(jìn)行分類,通過分類得出數(shù)據(jù)索引段,以段為單位進(jìn)行系統(tǒng)化的碎片處理,這樣才能夠更加有效地對(duì)碎片進(jìn)行清除。數(shù)據(jù)庫級(jí)的數(shù)據(jù)碎片處理過程中,主要以調(diào)整B-TREE結(jié)構(gòu)的方式進(jìn)行,對(duì)具體節(jié)點(diǎn)中的數(shù)據(jù)隨便進(jìn)行全面清除以得到穩(wěn)定的B-TREE數(shù)據(jù)結(jié)構(gòu),以此為基礎(chǔ),對(duì)數(shù)據(jù)隨便進(jìn)行有效整理,并優(yōu)化數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)。
3.4 磁盤的I/O調(diào)整
磁盤的I/O次數(shù)是Oracle數(shù)據(jù)庫中磁盤性能的主要影響因素。磁盤的I/O調(diào)整與數(shù)據(jù)庫磁盤數(shù)據(jù)錄入與輸出有著直接的關(guān)系,因此數(shù)據(jù)塊劃分和磁盤空間分配的調(diào)整能夠?qū)Υ疟P的I/O調(diào)整進(jìn)行影響,進(jìn)而影響Oracle數(shù)據(jù)庫性能。數(shù)據(jù)庫中數(shù)據(jù)塊劃分的科學(xué)合理性與否與Oracle數(shù)據(jù)庫性能有著較強(qiáng)的關(guān)聯(lián)性。因此,數(shù)據(jù)檢索方式優(yōu)化措施通常是通過索引中Index索引方式的加入以建立通過索引進(jìn)行數(shù)據(jù)調(diào)用的模式,通過這樣的方式進(jìn)行檢索方式的優(yōu)化。Oracle數(shù)據(jù)庫中有效簡化磁盤數(shù)據(jù)檢索方式,也能夠使數(shù)據(jù)表中的邏輯數(shù)值得以在RowID中直接映射,以此得到更加具有針對(duì)性的數(shù)據(jù)調(diào)用,與此同時(shí)對(duì)數(shù)據(jù)調(diào)取速率和準(zhǔn)確性有著較大幫助。在對(duì)數(shù)據(jù)庫磁盤進(jìn)行I/O調(diào)整過程中,還能夠利用數(shù)據(jù)庫磁盤以分區(qū)處理的形式合理有效的分類數(shù)據(jù)庫數(shù)據(jù),如此不僅縮短了數(shù)據(jù)檢索與調(diào)用時(shí)間,還有利于數(shù)據(jù)錄入與調(diào)用的速率提升,有利于Oracle數(shù)據(jù)庫性能的提升。
4 結(jié)束語
Oracle數(shù)據(jù)庫規(guī)模在現(xiàn)今時(shí)代背景下發(fā)展越來越迅速,規(guī)模也在不斷擴(kuò)大,用戶量也隨之增加,Oracle數(shù)據(jù)庫性能及運(yùn)算效率受到了更多方面的關(guān)注。Oracle數(shù)據(jù)庫性能優(yōu)化調(diào)整需要對(duì)數(shù)據(jù)庫性能影響因素進(jìn)行詳實(shí)的研究和理解,通過對(duì)不同影響因素的分析,制定合理的調(diào)整計(jì)劃和策略,通過不同方法措施進(jìn)行Oracle數(shù)據(jù)庫性能優(yōu)化。提升Oracle數(shù)據(jù)庫性能并非一朝一夕之事,隨著相關(guān)技術(shù)水平的提升,在Oracle數(shù)據(jù)庫性能優(yōu)化的同時(shí)大膽啟用新技術(shù),使Oracle數(shù)據(jù)庫能夠不斷創(chuàng)新發(fā)展,表現(xiàn)其更加深層的價(jià)值。
參考文獻(xiàn):
[1]常正青.基于Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化與性能調(diào)整研究[J].電子世界,2017(17).
[2]王振宇.大型Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化設(shè)計(jì)方案[J].電子技術(shù)與軟件工程,2016(06).
[3]庫爾班江·托乎提,于會(huì)松,滕良娟.基于Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化與性能調(diào)整研究[J].信息系統(tǒng)工程,2014(08).
[4]洪健.大型Oracle數(shù)據(jù)庫系統(tǒng)的優(yōu)化設(shè)計(jì)研究[J].電子技術(shù)與軟件工程,2014(11).
[5]高原,耿國華,劉曉寧.Oracle數(shù)據(jù)庫系統(tǒng)事后優(yōu)化研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(32).
[6]劉博.Oracle數(shù)據(jù)庫性能調(diào)整與優(yōu)化[D].大連理工大學(xué),2007.