【发布时间】:2015-07-24 11:22:51
【问题描述】:
假设下表:
create table INVOICE(
INVOICE_ID NUMBER
,INVOICE_SK NUMBER
,INVOICE_AMOUNT NUMBER
,INVOICE_TEXT VARCHAR2(4000 Char)
,B2B_FLAG NUMBER -- 0 or 1
,ACTIVE NUMBER(1) -- 0 or 1
)
PARTITION BY LIST (ACTIVE)
SUBPARTITION BY LIST (B2B_FLAG)
( PARTITION p_active_1 values (1)
( SUBPARTITION sp_b2b_flag_11 VALUES (1)
, SUBPARTITION sp_b2b_flag_10 VALUES (0)
)
,
PARTITION p_active_0 values (0)
( SUBPARTITION sp_b2b_flag_01 VALUES (1)
, SUBPARTITION sp_b2b_flag_00 VALUES (0)
)
)
出于性能原因,该表应获得“复合列表-列表”分区,请参阅http://docs.oracle.com/cd/E18283_01/server.112/e16541/part_admin001.htm#i1006565。
问题在于,对于大量记录,ACTIVE-Flag 会经常更改,有时 B2B_FLAG 也会更改。 Oracle 会自动识别分区值已更改的记录并将它们移动到适当的分区,还是我必须调用某种维护函数来重新组织分区?
【问题讨论】:
标签: oracle partitioning database-administration database-partitioning