您好,登錄后才能下訂單哦!
這篇文章主要講解了“Oracle 11g引用分區(qū)表有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Oracle 11g引用分區(qū)表有什么作用”吧!
引用分區(qū)表是Oracle11g引入的新特性,在特定場合十分好用,解決了“并非所有表都具有您需要根據(jù)其進(jìn)行分區(qū)的列”這個問題。
根據(jù)Oracle官方文檔介紹,引用分區(qū)表是通過PARTITION BY REFERENCE語句來實現(xiàn),需要指定引用約束的名稱,該約束將成為應(yīng)用到該引用分區(qū)表所使用的約束。這個約束必須啟用和執(zhí)行。
和其他分區(qū)表一樣,你可以制定對象級別的默認(rèn)屬性,也可以隨意在特定分區(qū)設(shè)置屬性,覆蓋對象級別的屬性。
下面的sql語句創(chuàng)建了一個范圍分區(qū)表orders,引用分區(qū)子表order_items包含了4個分區(qū),分別是Q1_2005, Q2_2005, Q3_2005, Q4_2005,每個分區(qū)包含的order_items數(shù)據(jù)都是根據(jù)父表關(guān)聯(lián)列的范圍分區(qū)來存儲。
點擊(此處)折疊或打開
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語句中,引用分區(qū)子表沒有指定分區(qū)描述,默認(rèn)和父表保持一致;如果要指定分區(qū)描述,則分區(qū)描述的個數(shù)必須和父表的分區(qū)數(shù)保持一致。如果父表是一個復(fù)合分區(qū)表,則子表的分區(qū)和父表的子分區(qū)一一對應(yīng);否則,子表分區(qū)和父表的分區(qū)一一對應(yīng)。
需要注意的是,在引用分區(qū)表中不能指定分區(qū)的邊界。
引用分區(qū)表的分區(qū)可以單獨命名,如果沒有顯式地制定分區(qū)名稱,則直接繼承其關(guān)聯(lián)的父表分區(qū)名稱,除非父表分區(qū)名稱和已有名稱沖突。這種情況下,系統(tǒng)將自動生成一個分區(qū)名稱。由于上述sql語句沒有指定名稱,則子表分區(qū)和父表分區(qū)的名稱應(yīng)該相同。
點擊(此處)折疊或打開
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語句沒有顯式指定表空間,則引用分區(qū)表的分區(qū)將和父表的相關(guān)分區(qū)放在一起。
感謝各位的閱讀,以上就是“Oracle 11g引用分區(qū)表有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Oracle 11g引用分區(qū)表有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。