プライマリ・コンテンツに移動
Oracle® Database VLDBおよびパーティショニング・ガイド
12c リリース1 (12.1)
B71291-10
目次へ移動
目次
索引へ移動
索引

前
次

レンジ・パーティションのマージ

隣接する2つのレンジ・パーティションのコンテンツを、1つのパーティションにマージできます。隣接しないレンジ・パーティションはマージできません。結果のパーティションは、マージされた2つのパーティションの高い方の上限を継承します。

レンジ・パーティションをマージする理由の1つは、大規模なパーティションで、履歴データをオンラインに保つためです。たとえば、最も古いパーティションが週次パーティションにロールアップされ、そのパーティションは月次パーティションにロールアップされる日次パーティションを作成できます。

例4-29は、レンジ・パーティションのマージ例を示します。

この文からUPDATE INDEXES句を除外した場合は、影響を受けるパーティションのローカル索引を再作成する必要があります。

-- Rebuild index for quarter_two, which has been marked unusable 
-- because it has not had all of the data from Q1 added to it.
-- Rebuilding the index corrects this.
--
ALTER TABLE four_seasons MODIFY PARTITION 
quarter_two REBUILD UNUSABLE LOCAL INDEXES;

例4-29 レンジ・パーティションのマージ

-- First, create a partitioned table with four partitions, each on its own
-- tablespace partitioned by range on the data column
--
CREATE TABLE four_seasons
( 
        one DATE,
        two VARCHAR2(60),
        three NUMBER
)
PARTITION  BY RANGE ( one ) 
(
PARTITION quarter_one 
   VALUES LESS THAN ( TO_DATE('01-apr-1998','dd-mon-yyyy'))
   TABLESPACE quarter_one,
PARTITION quarter_two 
   VALUES LESS THAN ( TO_DATE('01-jul-1998','dd-mon-yyyy'))
   TABLESPACE quarter_two,
PARTITION quarter_three
   VALUES LESS THAN ( TO_DATE('01-oct-1998','dd-mon-yyyy'))
   TABLESPACE quarter_three,
PARTITION quarter_four
   VALUES LESS THAN ( TO_DATE('01-jan-1999','dd-mon-yyyy'))
   TABLESPACE quarter_four
);
-- 
-- Create local PREFIXED index on Four_Seasons
-- Prefixed because the leftmost columns of the index match the
-- Partitioning key 
--
CREATE INDEX i_four_seasons_l ON four_seasons ( one,two ) 
LOCAL ( 
PARTITION i_quarter_one TABLESPACE i_quarter_one,
PARTITION i_quarter_two TABLESPACE i_quarter_two,
PARTITION i_quarter_three TABLESPACE i_quarter_three,
PARTITION i_quarter_four TABLESPACE i_quarter_four
);

-- Next, merge the first two partitions 
ALTER TABLE four_seasons 
MERGE PARTITIONS quarter_one, quarter_two INTO PARTITION quarter_two
UPDATE INDEXES;