レンジ - レンジ・コンポジット・パーティション表のレンジ・パーティションは、非コンポジット・レンジ・パーティション表に似ています。この構成により、PARTITION
句のオプションの副次句で、パーティション・セグメントに固有の物理属性およびその他の属性(表領域を含む)を指定できます。パーティション・レベルで上書きされない場合、パーティションは基礎となる表の属性を継承します。
SUBPARTITION
句のレンジ・サブパーティションの記述は、指定できる唯一の物理属性がオプションの表領域であることを除き、非コンポジット・レンジ・パーティションと似ています。サブパーティションは、パーティションの説明からその他すべての物理属性を継承します。
例4-11では、レンジ - レンジ・パーティション化の使用方法を示します。この例では出荷を追跡しています。顧客とのサービス内容合意書には、すべての注文品は、注文が行われてから1か月以内に配送すると記載されています。注文には次のタイプがあります。
行のパーティション化列の値が、特定のパーティション・レンジに含まれているかどうかを確認して、行がパーティションにマッピングされます。その後、サブパーティション化列の値が特定のレンジ内に含まれているかどうかを確認して、そのパーティション内のサブパーティションに行がマッピングされます。たとえば、発注日が2006年9月で配送日が2006年10月28の出荷は、パーティションp06_oct_a
に含まれます。
サブパーティション・テンプレートを使用することで、コンポジット・パーティション表の指定がどのように簡略化されるかの詳細は、「コンポジット・パーティション表を説明するサブパーティション・テンプレートの指定」を参照してください。
e(早期): 注文が行われた次の月の中旬までに配送される注文。これらの注文は、顧客の予想より早く配送されます。
a(合意どおり): 注文が行われてから1か月以内に配送される注文(ただし早期の注文ではありません)。
l(遅延): 注文が行われた後、1か月を過ぎてから配送される注文。
例4-11 コンポジット・レンジ - レンジ・パーティション表の作成
CREATE TABLE shipments ( order_id NUMBER NOT NULL , order_date DATE NOT NULL , delivery_date DATE NOT NULL , customer_id NUMBER NOT NULL , sales_amount NUMBER NOT NULL ) PARTITION BY RANGE (order_date) SUBPARTITION BY RANGE (delivery_date) ( PARTITION p_2006_jul VALUES LESS THAN (TO_DATE('01-AUG-2006','dd-MON-yyyy')) ( SUBPARTITION p06_jul_e VALUES LESS THAN (TO_DATE('15-AUG-2006','dd-MON-yyyy')) , SUBPARTITION p06_jul_a VALUES LESS THAN (TO_DATE('01-SEP-2006','dd-MON-yyyy')) , SUBPARTITION p06_jul_l VALUES LESS THAN (MAXVALUE) ) , PARTITION p_2006_aug VALUES LESS THAN (TO_DATE('01-SEP-2006','dd-MON-yyyy')) ( SUBPARTITION p06_aug_e VALUES LESS THAN (TO_DATE('15-SEP-2006','dd-MON-yyyy')) , SUBPARTITION p06_aug_a VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy')) , SUBPARTITION p06_aug_l VALUES LESS THAN (MAXVALUE) ) , PARTITION p_2006_sep VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy')) ( SUBPARTITION p06_sep_e VALUES LESS THAN (TO_DATE('15-OCT-2006','dd-MON-yyyy')) , SUBPARTITION p06_sep_a VALUES LESS THAN (TO_DATE('01-NOV-2006','dd-MON-yyyy')) , SUBPARTITION p06_sep_l VALUES LESS THAN (MAXVALUE) ) , PARTITION p_2006_oct VALUES LESS THAN (TO_DATE('01-NOV-2006','dd-MON-yyyy')) ( SUBPARTITION p06_oct_e VALUES LESS THAN (TO_DATE('15-NOV-2006','dd-MON-yyyy')) , SUBPARTITION p06_oct_a VALUES LESS THAN (TO_DATE('01-DEC-2006','dd-MON-yyyy')) , SUBPARTITION p06_oct_l VALUES LESS THAN (MAXVALUE) ) , PARTITION p_2006_nov VALUES LESS THAN (TO_DATE('01-DEC-2006','dd-MON-yyyy')) ( SUBPARTITION p06_nov_e VALUES LESS THAN (TO_DATE('15-DEC-2006','dd-MON-yyyy')) , SUBPARTITION p06_nov_a VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy')) , SUBPARTITION p06_nov_l VALUES LESS THAN (MAXVALUE) ) , PARTITION p_2006_dec VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy')) ( SUBPARTITION p06_dec_e VALUES LESS THAN (TO_DATE('15-JAN-2007','dd-MON-yyyy')) , SUBPARTITION p06_dec_a VALUES LESS THAN (TO_DATE('01-FEB-2007','dd-MON-yyyy')) , SUBPARTITION p06_dec_l VALUES LESS THAN (MAXVALUE) ) );