對於現有的表,你可以移動分區或子分區到不同的表空間,即不同的數據文件,示例:
ALTER TABLE scuba_gear MOVE SUBPARTITION bcd_types TABLESPACE tbs23;
ALTER TABLE parts MOVE PARTITION depot2 TABLESPACE ts094;
看到Moving Subpartitions和Moving Table Partitions
對於新表格,您通常會像這樣創建它們:
CREATE TABLE 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)
INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
STORE IN (ts_1, ts_2, ts_3, ts_4, ts_5, ts_6 ,ts_7 ,ts_8, ts_9, ts_10, ts_11, ts_12)
SUBPARTITION BY HASH (cust_id) SUBPARTITIONS 4
(PARTITION before_2000 VALUES LESS THAN (TO_DATE('01-JAN-2000','dd-MON-yyyy')));
然後Oracle會通過「round-robin」方法將這些月份分區放到這12個表空間中。 STORE IN
子句也可以用於子分區,請參閱Creating a composite range-hash partitioned table
您確定需要管理數據文件嗎?如果你使用ASM,它會爲你照顧。 –