您好,登錄后才能下訂單哦!
這篇文章主要講解了“Oracle 11g引用分區表有什么作用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Oracle 11g引用分區表有什么作用”吧!
引用分區表是Oracle11g引入的新特性,在特定場合十分好用,解決了“并非所有表都具有您需要根據其進行分區的列”這個問題。
根據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語句沒有指定名稱,則子表分區和父表分區的名稱應該相同。
點擊(此處)折疊或打開
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語句沒有顯式指定表空間,則引用分區表的分區將和父表的相關分區放在一起。
感謝各位的閱讀,以上就是“Oracle 11g引用分區表有什么作用”的內容了,經過本文的學習后,相信大家對Oracle 11g引用分區表有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。