oracle中什么是分區表

oracle中,分區表是將大表分解為多個小的、可管理的分區表,每個分區表之間相互獨立,共同構成了完整的表,邏輯上講只有一個表或一個索引,但在物理上這個表或索引可能由數個物理分區組成;分區表可以分為范圍分區、列表分區、哈希分區和組合分區。

oracle中什么是分區表

本教程操作環境:windows10系統、Oracle 11g版、Dell G3電腦。

oracle中什么是分區表

(1)什么是分區

在Oracle數據庫中,為了提升對大表/大索引的可管理性、可維護性以及性能,Oracle引入了分區表機制,可以將大表/大索引分解為多個小的、可管理的分區。多個分區相對獨立,有獨立的存儲結構,共同構成了整個完整的表/索引。分區對應用透明,即對訪問數據庫的應用而言,邏輯上講只有一個表或一個索引(相當于應用看到的仍然只是一個表或索引),但在物理上這個表或索引可能由數個物理分區組成。

(2)什么時候需要分區

Oracle官網的建議以下情形采用分區表:

? 1. 表數據量大于2GB時應該考慮使用分區;

? 2. 新數據加入至最新分區中的用于存儲歷史數據的表。

(3)分表和分區表的區別

為了分散存儲大表/索引的數據,另外一種途徑是分表,分表是將一個大表按照一定的規則分解成多張具有獨立存儲空間的實體表,例如可以將客戶表customer拆分成兩個表,一個用于存儲個人客戶 customer_person,另一個存儲對公客戶 customer_company。分表完全獨立,在邏輯上是多張不同的表,而分區表在物理上是一張表。分區表對應用透明易于管理維護,分表不易于管理維護。

(4)分區表的類型

  • 范圍分區(Range Partitioning)

  • 列表分區(List Partitioning)

  • 哈希分區(Hash Partitioning)

  • 組合分區(Composite Partitioning)

基本分區是指僅僅使用了一層分區(范圍分區、列表分區、哈希分區)的分區表。

如果對分區表進行多層級的分區,則稱為組合分區。

范圍分區表

(1)分區鍵

分區是將非常大的表或者索引分解成多個小的、可管理的部分。分區表是通過分區鍵來分解分區的。分區鍵決定了分區表中的每一行數據流向哪個分區。分區表中的每一行數據根據分區鍵,隱式地被分配到一個分區中。

(2)范圍分區

范圍分區按照分區鍵,根據數據行落在分區鍵中不同的范圍值來劃分分區。

(3)案例1(分區鍵為單列)

CREATE?TABLE?time_range_sales ?????(?prod_id????????NUMBER(6) ???????,?cust_id????????NUMBER ???????,?time_id????????DATE ???????,?channel_id?????CHAR(1) ???????,?promo_id???????NUMBER(6) ???????,?quantity_sold??NUMBER(3) ???????,?amount_sold????NUMBER(10,2) ?????) ????PARTITION?BY?RANGE?(time_id) ????(PARTITION?SALES_1998?VALUES?LESS?THAN?(TO_DATE('01-JAN-1999','DD-MON-YYYY')), ?????PARTITION?SALES_1999?VALUES?LESS?THAN?(TO_DATE('01-JAN-2000','DD-MON-YYYY')), ?????PARTITION?SALES_2000?VALUES?LESS?THAN?(TO_DATE('01-JAN-2001','DD-MON-YYYY')), ?????PARTITION?SALES_2001?VALUES?LESS?THAN?(MAXVALUE) ????);

推薦教程:《Oracle視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享