深入理解 Oracle 分區(2):資料分割配置中常見問題探討
來源:互聯網
上載者:User
分區方案設計和實施是一門追求綜合平衡、充滿辯證統一的哲學、
也是經驗和技術不斷積累的藝術
然而、實際項目中、卻漏洞頻出、導致海量資料頃刻坍塌
㈠ 目標方面的誤區
① 問題分析
在很多分區設計方案、其指導思想往往只考慮部分目標
特別是過分在意設計對效能的需求
而對分區在資料生命週期、資料備份恢複、高可用性等方面置若罔聞
② 正確策略
全面考量、綜合平衡各個目標
建議指定目標優先順序
㈡ 表分區方面的誤區
① 問題分析
在實際項目中、很多資料分割配置只採用了Oracle Range 分區策略
對其他Oracle 分區技術運用較少
② 正確策略
進行分區表設計的正確策略應是充分瞭解Oracle各種分區技術的特點之後、
再結合具體應用需求進行針對性設計
比如:
對需要進行曆史資料移轉的表、應盡量採用Range、List、Interval等、如話費清單資料
對不存在曆史資料移轉需求的表、如使用者資料資訊、則可考慮採用HASH分區技術
㈢ 沒有充分考慮應用設計和開發的誤區
① 問題分析
資料分割配置設計時、沒有對應用軟體設計和開發進行充分調研、
特別是沒有對重點SQL語句進行深入分析、導致這些操作無法使用分區技術
② 正確策略
應用需求分析是任何設計開發工作的基礎
對應用軟體設計和開發進行調研分析、特別是重點SQL進行深入分析
㈣ 分區資料表空間設計方面的誤區
① 問題分析
在Oracle分區設計可指定每個分區的儲存屬性、特別是可在分區級進行資料表空間設計
但是很多項目中、在此方面存在較大的隨意性、缺乏精細考慮和設計
這樣將導致無法在資料表空間級進行與業務相關的資料管理工作
比如、在曆史資料清理、資料發布等應用中、無法使用資料表空間遷移、並且無法結合分區交換、合并等技術
另外、在備份與恢複中、這樣的分區也無法在資料表空間級進行按月的備份和恢複
② 正確策略
Oracle的分區資料表空間設計為大批量資料處理提供了良好的技術基礎
只有充分理解資料表空間級的Oracle相關技術、才能在資料分割配置設計中權衡
總之、別把雞蛋都往一個籃子裡面放
㈤ 大批量資料處理中的誤區
① 問題分析
在很多項目、設計和開發人員仍然在採用最原始的DML進行大批量資料處理、
不僅運行效率低下、而且會產生大量UNDO REDO、為備份恢複、資源管理增加負擔
② 正確策略
大批量資料處理一定要想到分區技術
例如、通過資料表空間遷移和分區表技術(truncate、drop、add、exchange、merge、split等)的綜合使用、
高效實現海量資料倉儲載入的技術方案
㈥ 索引分割區方面的誤區
① 問題分析
在很多方案設計中、很少甚至沒有對索引進行分區設計
或者、只是簡單將所有分區索引設計成Local分區索引
② 正確策略
分區索引雖然難、但非常重要、切記隨意設計!
比如:針對存在曆史資料清理和歸檔需求的表、可設計成高可用性和可維護性較好的Local索引
而對不存在曆史資料清理和歸檔的表、可設計成效能更好的Global Prefix索引