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