在oracle中,分區表是將大表分解為多個小的、可管理的分區表,每個分區表之間相互獨立,共同構成了完整的表,邏輯上講只有一個表或一個索引,但在物理上這個表或索引可能由數個物理分區組成;分區表可以分為範圍分區、列表分區、哈希分區和組合分區。
本教學操作環境:windows10系統、Oracle 11g版、Dell G3電腦。
(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影片教學》
以上是oracle中什麼是分割表的詳細內容。更多資訊請關注PHP中文網其他相關文章!