[引用分割槽表]Oracle 11g新特性之引用分割槽表
引用分割槽表是Oracle11g引入的新特性,在特定場合十分好用,解決了“並非所有表都具有您需要根據其進行分割槽的列”這個問題。
根據Oracle官方文件介紹,引用分割槽表是透過PARTITION BY REFERENCE語句來實現,需要指定引用約束的名稱,該約束將成為應用到該引用分割槽表所使用的約束。這個約束必須啟用和執行。
和其他分割槽表一樣,你可以制定物件級別的預設屬性,也可以隨意在特定分割槽設定屬性,覆蓋物件級別的屬性。
下面的sql語句建立了一個範圍分割槽表orders,引用分割槽子表order_items包含了4個分割槽,分別是Q1_2005, Q2_2005, Q3_2005, Q4_2005,每個分割槽包含的order_items資料都是根據父表關聯列的範圍分割槽來儲存。
在上述sql語句中,引用分割槽子表沒有指定分割槽描述,預設和父表保持一致;如果要指定分割槽描述,則分割槽描述的個數必須和父表的分割槽數保持一致。如果父表是一個複合分割槽表,則子表的分割槽和父表的子分割槽一一對應;否則,子表分割槽和父表的分割槽一一對應。
需要注意的是,在引用分割槽表中不能指定分割槽的邊界。
如果sql語句沒有顯式指定表空間,則引用分割槽表的分割槽將和父表的相關分割槽放在一起。
根據Oracle官方文件介紹,引用分割槽表是透過PARTITION BY REFERENCE語句來實現,需要指定引用約束的名稱,該約束將成為應用到該引用分割槽表所使用的約束。這個約束必須啟用和執行。
和其他分割槽表一樣,你可以制定物件級別的預設屬性,也可以隨意在特定分割槽設定屬性,覆蓋物件級別的屬性。
下面的sql語句建立了一個範圍分割槽表orders,引用分割槽子表order_items包含了4個分割槽,分別是Q1_2005, Q2_2005, Q3_2005, Q4_2005,每個分割槽包含的order_items資料都是根據父表關聯列的範圍分割槽來儲存。
點選(此處)摺疊或開啟
-
CREATE TABLE orders
-
( order_id NUMBER(12),
-
order_date TIMESTAMP,
-
order_mode VARCHAR2(8),
-
customer_id NUMBER(6),
-
order_status NUMBER(2),
-
order_total NUMBER(8,2),
-
sales_rep_id NUMBER(6),
-
promotion_id NUMBER(6),
-
CONSTRAINT orders_pk PRIMARY KEY(order_id)
-
)
-
PARTITION BY RANGE(order_date)
-
( PARTITION Q1_2005 VALUES LESS THAN (TO_DATE('01-APR-2005','DD-MON-YYYY')),
-
PARTITION Q2_2005 VALUES LESS THAN (TO_DATE('01-JUL-2005','DD-MON-YYYY')),
-
PARTITION Q3_2005 VALUES LESS THAN (TO_DATE('01-OCT-2005','DD-MON-YYYY')),
-
PARTITION Q4_2005 VALUES LESS THAN (TO_DATE('01-JAN-2006','DD-MON-YYYY'))
-
);
-
-
CREATE TABLE order_items
-
( order_id NUMBER(12) NOT NULL,
-
line_item_id NUMBER(3) NOT NULL,
-
product_id NUMBER(6) NOT NULL,
-
unit_price NUMBER(8,2),
-
quantity NUMBER(8),
-
CONSTRAINT order_items_fk
-
FOREIGN KEY(order_id) REFERENCES orders(order_id)
-
)
- PARTITION BY REFERENCE(order_items_fk);
需要注意的是,在引用分割槽表中不能指定分割槽的邊界。
引用分割槽表的分割槽可以單獨命名,如果沒有顯式地制定分割槽名稱,則直接繼承其關聯的父表分割槽名稱,除非父表分割槽名稱和已有名稱衝突。這種情況下,系統將自動生成一個分割槽名稱。由於上述sql語句沒有指定名稱,則子表分割槽和父表分割槽的名稱應該相同。
點選(此處)摺疊或開啟
-
SQL> select table_name,partition_name from user_tab_partitions;
-
-
TABLE_NAME PARTITION_NAME
-
------------------------------ ------------------------------
-
ORDER_ITEMS Q4_2005
-
ORDER_ITEMS Q3_2005
-
ORDER_ITEMS Q2_2005
-
ORDER_ITEMS Q1_2005
-
ORDERS Q4_2005
-
ORDERS Q3_2005
-
ORDERS Q2_2005
-
ORDERS Q1_2005
-
-
8 rows selected.
-
- SQL>
如果sql語句沒有顯式指定表空間,則引用分割槽表的分割槽將和父表的相關分割槽放在一起。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2145784/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle分割槽表和分割槽表exchangeOracle
- ORACLE 19c 新特性之混合分割槽表Oracle
- Oracle11.2表分割槽新特性Oracle
- Oracle 12C 新特性之表分割槽或子分割槽的線上遷移Oracle
- oracle分割槽表和非分割槽表exchangeOracle
- 【ORACLE新特性】11G 分割槽新特性Oracle
- oracle 11g 分割槽表Oracle
- Oracle分割槽表及分割槽索引Oracle索引
- oracle reference partition引用分割槽(一)Oracle
- oracle 19C新特性——混合分割槽表Oracle
- Oracle 表分割槽Oracle
- oracle分割槽表Oracle
- oracle表分割槽Oracle
- Oracle 分割槽表Oracle
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- ORACLE 11G分割槽表新功能:列表--範圍分割槽Oracle
- 11g分佈表新特性——Interval分割槽(上)
- 11g分佈表新特性——Interval分割槽(下)
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- ORACLE 11g 範圍分割槽錶轉換INTERVAL分割槽表Oracle
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- Oracle 建立分割槽表Oracle
- ORACLE分割槽表管理Oracle
- 11g分割槽新特性之interval partition
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- Oracle 12C 新特性之表分割槽部分索引(Partial Indexes)Oracle索引Index
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- 全面認識oracle分割槽表及分割槽索引Oracle索引
- INTERVAL分割槽表鎖分割槽操作
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引