資料倉儲效能優化技術

newknight發表於2013-12-03

效能優化的原則:

1)         提高操作中最慢部分的速度

2)         剔除不必要的操作


獲取效能的技術:

基於資料使用模式生成索引

    問題:需要載入索引,載入時間可能會比較長

          需要額外的儲存空間

          線上更新索引,會帶來其他的效能問題

    補充:稀疏索引-對錶格的一部分資料記錄進行索引(大部分dbms不支援,需編寫程式碼)

使用陣列

    將資料物理地組織在一起

表格合併

    將多個經常聯合使用的表格合併成一張表,可以一次訪問到這些資料,減少IO

建立冗餘資料

    一些描述性欄位可以在需要它的資料表裡冗餘,而不是每次要去訪問屬性表獲取描述,浪費額外的IO

聚集資料

    如果需要重複進行相同的底層資料聚集操作,可以建立起對應的聚集表格,並允許使用者訪問聚集值

拆分事務使IO最少

    將事務拆分成幾個較小的事務,而不是一次完成造成大量的IO和序列等待

工作日管理

    對高效能的時段進行拆分,在可能的閒時執行大事務或長序列事務

容量計劃和管理

    監視系統活動,分析趨勢,主動擴充套件系統資源;採用並行體系,使得系統效能可以獲得線性擴充套件

管理大容量資料

    對資料倉儲中老化的資料,可以轉移到二級儲存裝置中,因此可以儲存大量資料而不會降低系統效能

    原因:索引可能變得過大而且低效

          資料因基本空間問題,進行應急空間而難以訪問

          雜湊資料衝突,可能出現兩行資料在同一演算法上相同的鍵值

          順序搜尋需要太長的時間

          長資料鏈的建立

資料集市與效能

    資料集市可以滿足所屬部門的需求,使用效能高,而且分散了資料倉儲的壓力

ETL效率和效能

    ETL儘量設計成獨立執行單元,可以支援更大容量的資料流;如果使用公共介面,會出現效能問題

    補充:儘可能使用快照,每次生成新的生產資料的快照,而不是更新已有資料,當然可能帶來記錄數量的問題,而且不可能在所有情況下適用

移動少量資料

    對少量資料的頻繁移動,而不是對大量資料的非頻繁移動(會造成阻塞和系統等待佇列)

使用日誌檔案

    儘可能的使用日誌檔案,因為包含細節資料,而且可以離線處理,不會造成生產系統的額外負載

生成線上報表

    一次性生成報表,並保持線上狀態,可以減少對系統的重複訪問

重複查詢

    與報表類是,對查詢結果保持線上,也有助於優化重複查詢的效能

滾動式彙總資料

    每天結束時,將這一天的細節資料彙總存入每天的資料表,每週、每月同理操作。可以減少細節資料的重複訪問,減少資源開銷。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10009036/viewspace-1062045/,如需轉載,請註明出處,否則將追究法律責任。

相關文章