王曉龍
摘要:本文通過對Oracle數(shù)據(jù)庫在空間和性能上的管理,以及應(yīng)用優(yōu)化數(shù)據(jù)庫方面作出了詳細(xì)的描述,更好地保持了數(shù)據(jù)信息的完整性以及數(shù)據(jù)存取的穩(wěn)定性,為數(shù)據(jù)的安全提供了技術(shù)支持與保障。
關(guān)鍵詞:Oracle數(shù)據(jù)庫;性能管理;空間管理;應(yīng)用優(yōu)化
一、Oracle數(shù)據(jù)庫的性能管理
Oracle數(shù)據(jù)庫在性能管理方面主要分為兩種:主動式與被動式管理。主動式性能管理是關(guān)于開發(fā)與設(shè)計(jì)特定系統(tǒng)的運(yùn)行,其中包含性能、規(guī)劃的容量、選擇的硬件、選擇的存儲系統(tǒng),優(yōu)化和配置I-O子系統(tǒng),制定各種不同的組件,使之能夠適應(yīng)應(yīng)用系統(tǒng)以及Oracle數(shù)據(jù)庫的不同要求。
二、Oracle數(shù)據(jù)庫的空間管理
空間管理,作為影響Oracle數(shù)據(jù)庫穩(wěn)定性的重要因素,其主要包括以下四方面的內(nèi)容:
(一)數(shù)據(jù)的分布。數(shù)據(jù)分布是將數(shù)據(jù)按照不同的類型,分類存放在各個磁盤里,實(shí)現(xiàn)多個磁盤一起分擔(dān)總I/O來保持系統(tǒng)的穩(wěn)定性,這在很大程度上能夠縮短磁盤總I/O的等待時間。然而某些應(yīng)用系統(tǒng)在設(shè)計(jì)創(chuàng)建的過程中,往往容易被忽略系統(tǒng)的穩(wěn)定性和I/O的等待時間,導(dǎo)致一個磁盤里存放著大部分的數(shù)據(jù),使磁盤輸入輸出量分配不均,數(shù)據(jù)越多,影響越大。
(二)應(yīng)用空間的管理以及容量的規(guī)劃。在Oracle數(shù)據(jù)庫的空間管理中,其中一個主要的問題是防止因數(shù)據(jù)擴(kuò)大而導(dǎo)致數(shù)據(jù)庫不穩(wěn)定的現(xiàn)象。比如說,當(dāng)表里所有的空間全被填滿后,Oracle則應(yīng)當(dāng)分配新的區(qū)域以支援該表,但是假如該表所屬的空間不足,或者因?yàn)楸砜臻g里碎片過多而出現(xiàn)間斷式儲存時,便會導(dǎo)致儲存數(shù)據(jù)不穩(wěn)定的現(xiàn)象發(fā)生。在此情況下,空間管理則能夠?qū)崿F(xiàn)降低對系統(tǒng)性能的影響,減輕數(shù)據(jù)庫管理員的工作量,并且能夠?yàn)楂@取最新的數(shù)據(jù)提供保障。此外,系統(tǒng)用戶還能夠在空間管理報(bào)告的基礎(chǔ)上,更分了解數(shù)據(jù)庫在進(jìn)行統(tǒng)計(jì)分析過程中的狀態(tài)。
(三)數(shù)據(jù)空間應(yīng)用信息的定期更新。Oracle優(yōu)化器通過應(yīng)用數(shù)據(jù)字典里的數(shù)據(jù)對象信息對SQL進(jìn)行優(yōu)化,所以必須對數(shù)據(jù)對象的應(yīng)用空間信息進(jìn)行定時地更新,Oracle運(yùn)行SQL以前,通過應(yīng)用優(yōu)化器對最優(yōu)的SQL運(yùn)行路徑進(jìn)行選擇。Oracle7之后則通過應(yīng)用基于代價的優(yōu)化模式,該模式必須按照SQL中的引用對象進(jìn)行優(yōu)化和判斷其中的存儲性能。Oracle對此會提供ANALYZE的指令,從而能夠?qū)Σ煌瑪?shù)據(jù)對象的應(yīng)用空間特性進(jìn)行分析。
(四)數(shù)據(jù)庫碎片的發(fā)現(xiàn)及重組,在一般情況下,數(shù)據(jù)庫經(jīng)過一段時間的運(yùn)行后,由于對數(shù)據(jù)進(jìn)行多次的修改、增加、刪減的動作,系統(tǒng)就會殘留一些零細(xì)的碎片,這些碎片可以劃分為以下四類。塊級碎片:由于更改或者刪減數(shù)據(jù)塊里的數(shù)據(jù)而引發(fā)數(shù)據(jù)對象的間斷式儲存現(xiàn)象,對儲存空間產(chǎn)生了浪費(fèi),也影響其存取的功能性;段級碎片:在進(jìn)行表格或索引的創(chuàng)建時,容易造成儲存參數(shù)定義上的不合理。在增加數(shù)據(jù)的情況下,表和索引都會分配出太多的擴(kuò)展塊,從而容易導(dǎo)致數(shù)據(jù)對象產(chǎn)生間斷式的儲存。行遷移:數(shù)據(jù)塊內(nèi)部的儲存空間無法完全容下存儲塊中被更改過的數(shù)據(jù)而導(dǎo)致數(shù)據(jù)被遷移至其他位置的數(shù)據(jù)塊里,形成間斷式儲存。索引樹失衡:在通過數(shù)據(jù)的修改、增加、刪減后,索引樹的葉子大小各異,使索引無法給予最簡便的存取路徑。
三、Oracle數(shù)據(jù)庫的應(yīng)用優(yōu)化
從數(shù)據(jù)的方向上看,通過優(yōu)化SQL代碼可以解決80%的Oracale性能問題。優(yōu)化的過程包括了掃描全表、優(yōu)化索引、改進(jìn)并行機(jī)制、選擇更好的數(shù)據(jù)組合方式等過程,以便能夠達(dá)到最佳的應(yīng)用性能。如果沒有實(shí)現(xiàn)優(yōu)化SQL,就無法提升系統(tǒng)性能。通過選擇最佳的SQL語句可以降低對中央處理器資源的消耗,加快系統(tǒng)的反應(yīng)速度。此外,經(jīng)過完善后的SQL語句還能促進(jìn)其擴(kuò)展性。
以下是一些已知與例程優(yōu)化關(guān)系最密切的一些核心Oracle初始化參數(shù)。它們都會影響Oracle及SGA區(qū)的活動。從開始到生產(chǎn)環(huán)境前,參數(shù)的變更都必須通過測試以后方可使用,生產(chǎn)環(huán)境的參數(shù)一經(jīng)改變,就必須監(jiān)視和測試Oracle的動態(tài)指標(biāo)狀態(tài),以及系統(tǒng)的穩(wěn)定性。
通過以下Oracle的初始參數(shù),能夠直接對Oracle以及SGA區(qū)的操作造成影響。這些參數(shù)在進(jìn)行生產(chǎn)環(huán)境以前,任何更改都必須經(jīng)過測試以后才能得到應(yīng)用。生產(chǎn)環(huán)境的參數(shù)一旦發(fā)生變動,其動態(tài)指標(biāo)及系統(tǒng)的穩(wěn)定性就必須得到相關(guān)的監(jiān)視和檢測。
(一)DB_BLOCK_SIZE。在創(chuàng)建數(shù)據(jù)庫之前設(shè)置此參數(shù),同時該參數(shù)對每個數(shù)據(jù)塊都起到?jīng)Q定性作用。只有數(shù)據(jù)庫重新創(chuàng)建,才能對該參數(shù)進(jìn)行更改。同時該參數(shù)的變動也能讓其I/O功能提升至最好的狀態(tài),避免由于殘留的I/O給子系統(tǒng)帶來壓力。
(二)DB_BLOCK_BUFFERS。此參數(shù)對SGA區(qū)數(shù)據(jù)庫緩沖區(qū)中的塊數(shù)量起到?jīng)Q定性作用。這是Oracle進(jìn)行錄入以及讀取的區(qū)域,其錯誤配置將會導(dǎo)致I/O性能發(fā)生嚴(yán)重的問題。同時如果該參數(shù)過大,也會導(dǎo)致系統(tǒng)內(nèi)存不足,使操作系統(tǒng)不斷重復(fù)讀寫過程。
(三)SHARED_POOL_SIZE。該參數(shù)決定了SGA活動共享區(qū)的大小,是根據(jù)字節(jié)數(shù)進(jìn)行設(shè)定的。同時其組件的大小與應(yīng)用的類型(指重用SQL,還是生成動態(tài)SQL等)密切相關(guān),并且決定于同步用戶的人數(shù)和實(shí)例是否被設(shè)置成為支持多線程的服務(wù)器(MTS)。假如運(yùn)用MTS配置,那么其共享區(qū)會出現(xiàn)明顯地增加,原因是用戶進(jìn)程數(shù)據(jù)與光標(biāo)狀態(tài)等程序全局區(qū)域都被安排放進(jìn)了共享區(qū)。
四、結(jié)束語
作為數(shù)據(jù)庫管理員,不僅要做到保持?jǐn)?shù)據(jù)資源的完整性,還要按照用戶需求,對數(shù)據(jù)進(jìn)行創(chuàng)建、管理、維護(hù),以及做好及時的數(shù)據(jù)備份工作。
參考文獻(xiàn):
[1]杜瑩,王曉明.利用Oracle數(shù)據(jù)庫管理WebGIS中的地圖數(shù)據(jù)[J].測繪通報(bào),2004(4):49-51.
[2]呂靜.高職院校中Oracle數(shù)據(jù)庫管理課程教學(xué)改革與探索[J].中國新技術(shù)新產(chǎn)品,2010(24):230-230.
[3] Wen Yanping,文燕平.Video Management Using Oracle DatabaseOracle數(shù)據(jù)庫管理視頻信息[J].現(xiàn)代圖書情報(bào)技術(shù),2004,20(1):50-52.
[4]歐陽姝.淺析利用Oracle數(shù)據(jù)庫管理的WebGIS地圖數(shù)據(jù)集成的實(shí)現(xiàn)[J].大科技,2013(1):276-277.
[5]陶麗娟.淺談項(xiàng)目教學(xué)法在《Oracle數(shù)據(jù)庫管理》教學(xué)中的應(yīng)用[J].商情,2013(18):37-37.