數據庫物理設計及其優化技術研究
學術交流
作者:楊晨
【摘要】數據庫係統優化已經成為當下十分熱門的研究內容之一,數據量的急劇增大、多用戶的大並發量訪問使得數據庫的物理設計以及優化成為信息係統設計的重要組成部分。研究分析了當前的數據庫物理設計技術,通過這些技術的分析為實施數據物理設計提供技術基礎。然後基於Oracle數據庫分析了特點數據庫的物理設計技術和優化策略以及Oracle自身部署所需要的物理設計思想。
【關鍵詞】數據庫設計;物理設計;優化設計
隨著我國信息化的高速發展以及大量關係國計民生的信息係統的應用,人們將越來越依賴於信息化帶來的快捷優質的服務。信息時代數據庫技術已經滲透到各種應用領域當中,互聯網的快速發展推動著數據庫技術應用的激烈變革。當前隨著數據庫係統數據容量的急劇增加,而且並發訪問的用戶也迅猛增長。對於數據庫係統的性能提出了嚴峻的挑戰,這些因素導致對於數據庫物理設計優化提出了新的研究課題。
1.數據庫物理設計在係統開發中的地位與作用
當前信息化技術在各個行業的管理和生產環節中得到了廣泛的應用,數據庫技術是構成信息係統或動態網頁的重要內容,數據設計是係統開發的基礎工作,數據庫的數據邏輯結構直接影響係統各模塊功能的執行流程和運行效率。因此數據庫設計的規範化是係統開發中非常重要的一個環節,也是影響係統運行速度的重要因素。數據庫在物理設備上的存儲結構與存取方法稱為數據庫的物理結構,為一個給定的邏輯數據模型選取一個最適合的應用環境的物理結構的過程,就是數據庫的物理設計。在此步驟中DBA首先必須充分了解應用環境,詳細分析要運行的事務以獲得選擇物理數據庫設計所需要的參數,並充分了解所RDBMS的內部特征,特別是存取方法和存儲結構。
2.數據庫物理設計技術研究
數據庫物理設計變得越來越重要,不同的數據庫廠商都提出了自己的物理數據庫設計的技術或者工具,來滿足不同用戶應用對於數據庫物理設計的需要。當前的數據庫物理設計在整個數據庫生命周期中的地位越來越重要,而針對物理數據庫設計的技術也越來強大。
2.1 索引技術
索引技術是最原始的物理數據庫設計技術,在早期的關係數據模型中,十分重視索引對於數據訪問的作用,而且該技術確實很好的解決了用戶對數據的訪問需求。但是隨著數據量的增大,僅僅使用索引已經不能滿足查詢需求,因為索引本身的訪問就會占去整個查詢的大部分時間,所以需要研究不同的索引技術來解決索引的性能問題。在使用索引中,如果索引的數據存儲在相同或者相鄰的數據塊,此時就可以通過一次I/O讀取更多的數據,這樣就提高了使用索引檢索數據的效率,使用群集技術可以解決這個問題,群集索引是將屬性值相同或者相近的記錄記錄在一起,減少磁盤I/O。對於非有序存儲的數據表,為了優化訪問的效率,可以考慮使用哈希索引,根據某個無序的屬性值,使用哈希索引平衡數據的分布,通過將屬性值傳遞給一個哈希函數,該函數計算一個數據起始地址。
2.2 分區和分區索引技術
在製約數據訪問的效率的諸多因素中,磁盤的訪問效率是十分重要的考慮因素,因為磁盤訪問時機械速度,這個速度往往決定了整個查詢時間。而隨著數據量急速增加,如果可以減少表的掃描時間,減少訪問的數據塊,顯然可以減少數據的檢索時間。分區技術可以解決這個問題,在計算機領域分而治之的思想十分普遍,而且很好的解決了很多技術難題,在數據庫物理設計中分區技術就是用應用分而治之的思想,將一個大表按照某種規則分解成多個小表,從而對於數據訪問,數據維護,數據的高可用性貢獻了很多好處。同時分區表可以存放在不同物理磁盤,顯然對於平衡係統I/O效果很明顯。複合分區是指按照更多的準則來分區,可以按照時間分區,而在每個分區內再按照地點分區,顯然這種分區就是粒度更細,操作就更靈活。在Oracle、SQLSERVER以及INFORMIX DataServer中都支持複合分區技術。分區是對表的分區,對於分區表使用合理的分區索引可以極大提高分區表的檢索效率,而分區索引需要針對不同的分區類型和數據分布合理設計,在資源需求和效率之間合理平衡。
2.3 物化視圖
視圖可以很好的解決諸如安全,數據靈活性等好處,但是視圖隻是一個SQL定義,使用視圖還必須進行基表的訪問,顯然對於頻繁訪問的基表,效率就是問題。而物化視圖可以解決這個問題,物化視圖具有傳統視圖的優點,同時又不局限於基表而影響性能,因為物化視圖是物理存儲的表,它基於用戶創建的視圖定義,類似一個物理表。這個物化視圖可以是快速刷新的物化視圖,也可以是可更新的物化視圖,即基於基表在某種條件下來更新物化視圖。使用物化視圖時,RDBMS引擎會根據用戶的查詢語句進行計算決定是否使用物化視圖如果使用物化視圖,則引擎會對查詢語句重寫,使用物化試圖為完成對數據的查詢,往往這種查詢比不使用物化視圖效率更高。使用物化視圖需要注意數據更新問題,因為這種更新往往是通過廣域網實現,需要考慮對數據的實時要求,根據業務需要合理設計物化視圖。
2.4 數據壓縮技術