Oracle9i 分割槽(轉)

heying1229發表於2007-06-25

Oracle9i 分割槽

[@more@]

執行概要
Oracle9i 分割槽能夠提高許多應用程式的可管理性、效能與可用性。分割槽可以將表、索引及索引編排表進

一步劃分,從而可以更精細地對這些資料庫物件進行管理和訪問。Oracle 提供了種類繁多的分割槽方案以

滿足所有的業務需要。另外,由於在 SQL 語句中是完全透明的,所以分割槽可以用於幾乎所有的應用程式


分割槽的優點
分割槽可以提高可管理性、效能與可用性,從而給各種各樣的應用程式帶來極大的好處。通常,分割槽可以使

某些查詢以及維護操作的效能大大提高。此外,分割槽還能夠在很大程度上簡化日常管理任務。
分割槽還使資料庫設計人員和管理員能夠解決尖端應用程式帶來的最難的問題。分割槽是建立上億萬位元組資料

系統或需要極高可用性系統的關鍵工具。
分割槽的基本知識
分割槽能夠使表、索引或索引編排表進一步細分。這些資料庫物件的片段叫做分割槽。每個分割槽有自己的名稱

,還可以選擇自己的儲存特徵。例如,表可以在不同的表空間以壓縮表的形式儲存舊的分割槽。從資料庫管

理員的角度看,分割槽的物件有多個段,可以進行統一管理或單獨管理。這使資料庫管理員在管理分割槽的對

象時有相當大的靈活性。但是,從應用程式的角度看,分割槽的表與未分割槽的表是一樣的,所以在使用 SQL

DML 命令訪問分割槽的表時無須進行修改。
使用‘分割槽關鍵字’對錶進行分割槽,這是一些列,用來定義指定的行將放置在哪個分割槽中。Oracle9i 提

供 5 種技術用於對錶進行分割槽:
範圍分割槽
由一定範圍值的分割槽關鍵字指定每個分割槽(對於用日期列作分割槽關鍵字的表來說,分割槽‘2002 年 1 月’

包含分割槽關鍵字值從‘2002 年 1 月 1 日’到‘2002 年 1 月 31 日’ 的所有行)。

列表分割槽
由列表值的分割槽關鍵字指定每個分割槽(對於用地域列作分割槽關鍵字的表來說,‘北美’分割槽包含值‘加拿

大’、‘美國’和‘墨西哥’)
雜湊分割槽
將雜湊演算法用於分割槽關鍵字來確定指定行的分割槽
組合範圍-雜湊分割槽
範圍和雜湊技術的組合,首先對錶進行範圍分割槽,然後用雜湊技術對每個範圍分割槽再次分割槽。給定的範圍

分割槽的所有子分割槽加在一起表示資料的邏輯子集。
組合範圍-列表分割槽
範圍和列表技術的組合,首先對錶進行範圍分割槽,然後用列表技術對每個範圍分割槽再次分割槽。與組合範圍

-雜湊分割槽不同的是,每個子分割槽的所有內容表示資料的邏輯子集,由適當的範圍和列表分割槽設定來描述


索引編排表可以是範圍分割槽,也可以是雜湊分割槽。
Oracle9i 還提供三種分割槽索引:
本地索引
本地索引是對分割槽方式與基本表的分割槽方式一模一樣的分割槽表的索引。本地索引的每個分割槽僅對應於一個

基本表的分割槽。
全域性分割槽索引
全域性分割槽索引是對分割槽或非分割槽的表的索引,該表透過本身的不同分割槽關鍵字予以分割槽。全域性分割槽索引僅

可用範圍分割槽進行分割槽。例如,表可以用月份作範圍分割槽,從而擁有 12 個分割槽。該表的索引可能會用不

同的分割槽關鍵字進行範圍分割槽,因此有著不同數目的分割槽。
全域性非分割槽索引
全域性非分割槽索引基本上和非分割槽表的索引一樣。該索引結構是不分割槽的。
Oracle 提供了一套強健的技術,進行表、索引與索引編排表的分割槽操作,這樣,對任何業務環境下的任

何應用程式,都可以選用最適當的分割槽技術。
Oracle 還提供一套完整的 SQL 命令,用於管理分割槽表。其中包括新增新分割槽、刪除分割槽、分解分割槽以及

合併分割槽的命令。

分割槽技術提高可管理性
Oracle9i 分割槽功能允許將表和索引可以細分為較小、較容易管理的單元,使資料庫管理員能夠用‘分而

治之’的手段進行資料管理。
使用分割槽技術,維護操作可集中於表的特定部分。例如,資料庫管理員可以只對表的一部分做備份,而不

必對整個表做備份。對整個資料庫物件的維護操作,可以在每個分割槽的基礎上進行,從而將維護工作分解

成更容易管理的小塊。
分割槽技術提高可管理性的一個典型用法是支援資料倉儲中的‘滾動視窗’載入程式。假設資料庫管理員每

周向表中載入新資料。該表可以是範圍分割槽,以便每個分割槽包含一週的資料。載入程式只是簡單地新增新

的分割槽。新增一個新分割槽的操作比修改整個表效率高很多,因為資料庫管理員不需要修改任何其他分割槽。

從分割槽後的表中去除資料也是一樣。你只要用一個很簡便快捷的資料字典操作刪掉一個分割槽,而不必發出

使用大量資源和調動所有要刪除的資料的 ‘DELETE’ 命令。
分割槽技術提高效能
由於減少了所檢查或操作的資料數量,同時允許並行執行,Oracle9i 的分割槽功能提供了效能上的優勢。

這些效能包括:
分割槽修整
分割槽修整是用分割槽技術提高效能的最簡單最有價值的手段。分割槽修整常常能夠將查詢效能提高几個數量級

。例如,假定應用程式中有包含定單歷史記錄的定單表,該表用周進行了分割槽。查詢一週的定單隻需訪問

該定單表的一個分割槽。如果該定單表包含兩年的歷史記錄,這個查詢只需要訪問一個而不是一百零四個分

區。該查詢的執行速度因為分割槽修整而有可能快一百倍。分割槽修整能與所有其他 Oracle 效能特性協作。

Oracle 公司將把分割槽修整技術與索引技術、連結技術和並行訪問方法一起聯合使用。
分割槽智慧連線
分割槽功能可以透過稱為分割槽智慧連線的技術提高多表連線的效能。當兩個表要連線在一起,而且每個表都

用連線關鍵字來分割槽時,就可以使用分割槽智慧連線。分割槽智慧連線將大型連線分解成較小的發生在各個分

區間的連線,從而用較少的時間完成全部連線。這就給序列和並行的執行都能帶來顯著的效能改善。
更新和刪除的並行執行
分割槽功能能夠無限地並行執行 UPDATE、DELETE 與 MERGE 語句。當訪問分割槽或未分割槽的資料庫物件時

Oracle 將並行處理 SELECT 與 INSERT 語句。當不使用

點陣圖索引時,也可以對分割槽或未分割槽的資料庫物件並行處理 UPDATE、DELETE 和 MERGE 語句。為了對有

點陣圖索引的物件並行處理那些操作,目標表必須先分割槽。這些 SQL 語句的並行執行可以大大提高效能,

特別是提高 UPDATE 與 DELETE 或 MERGE 操作涉及大量資料時的效能。
分割槽技術提高可用性
分割槽的資料庫物件具有分割槽獨立性。該分割槽獨立性特點可能是高可用性戰略的一個重要部分,例如,如果

分割槽表的分割槽不能用,但該表的所有其他分割槽仍然保持線上並可用。那麼這個應用程式可以繼續針對該分

區表執行查詢和事務處理,只要不是訪問那個不可用的分割槽,資料庫操作仍然能夠成功執行。
資料庫管理員可以指定各分割槽存放在不同的表空間裡,從而讓管理員獨立於其它表分割槽針對每個分割槽進行

備份與恢復操作。
還有,分割槽功能可以減少計劃停機時間。效能由於分割槽功能得到了改善,使資料庫管理員在相對較小的批

處理視窗完成大型資料庫物件的維護工作。
未來發展方向
自從推出分割槽技術以來,Oracle 公司在每次重要釋出中都增加新的分割槽方法。Oracle8 推出範圍分割槽,

Oracle8i 推出雜湊分割槽和範圍雜湊組合分割槽,Oracle9i 推出列表分割槽,Oracle9i Release 2 推出範圍

列表組合分割槽。Oracle 公司計劃繼續增加新的分割槽技術,保障提供面向所有的業務需求最佳化的分割槽技術


結論
Oracle9i 分割槽技術大大提高了幾乎所有資料庫應用程式的可管理性、效能及可用性。分割槽技術可用於尖

端應用程式,分割槽技術確實是保障這些應用程式成功的關鍵技術成分。同時,分割槽技術也可用於較為普通

的資料庫應用程式,來簡化這些應用程式的管理工作,降低管理成本。

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

相關文章