すべてのプロダクト
Search
ドキュメントセンター

PolarDB:サブパーティションテンプレート

最終更新日:Jun 04, 2024

サブパーティションテンプレートを使用してサブパーティションを定義し、サブパーティションの仕様を簡素化できます。 サブパーティションテンプレートでサブパーティション記述子を定義してから、テーブル内の各パーティションにサブパーティションテンプレートを適用するだけで済みます。 これにより、テーブル内の複数のパーティションのサブパーティション記述子を一度に定義できます。

  • パーティションにサブパーティション記述子を指定しない場合、システムは自動的にサブパーティションテンプレートを使用してサブパーティションを定義します。
  • パーティションにサブパーティション記述子を指定した場合、システムは自動的にその記述子を使用してサブパーティションを定義します。
  • パーティションにサブパーティション記述子を指定せず、使用可能なサブパーティションテンプレートがない場合、システムは自動的にデフォルトのサブパーティションを作成します。
  • サブパーティションテンプレートにサブパーティション名を指定した場合、このテンプレートに基づいて作成されるサブパーティションの名前は、「partition name_subpartition template name」形式で指定されます。 たとえば、パーティション名がpartaで、サブパーティションテンプレート名がsubpartbの場合、サブパーティション名はparta_subpartbです。

構文

  • 一般的なサブパーティションテンプレートを作成します。
    CREATE TABLE table_definition PARTITION BY hash/range/list (column[, column ]...)
    SUBPARTITION BY hash/range/list (column[, column ]...)
    SUBPARTITIONテンプレート (subpartition[, subpartition], ...)
    (table_partition[, table_partition]...); 
  • ハッシュサブパーティションに適用可能なサブパーティションテンプレートを作成します。
    CREATE TABLE table_definition PARTITION BY hash/range/list (column[, column ]...)
    SUBPARTITION BY hash(column[, column ]...)
    SUBPARTITIONテンプレートnum
    (table_partition[, table_partition]...); 
  • ハッシュパーティションとサブパーティションに適用できるサブパーティションテンプレートを作成します。
    CREATE TABLE table_definition PARTITION BY hash (column[, column ]...)
    SUBPARTITION BY hash(column[, column ]...) PARTITIONS num SUBPARTIONS num; 
  • 一般的なサブパーティションテンプレートを変更します。
    ALTER TABLE table_definition SUBPARTITIONテンプレート (subpartition[, subpartition], ...)
  • ハッシュサブパーティションに適用可能なサブパーティションテンプレートを変更します。
    ALTER TABLE table_definition SUBPARTITIONテンプレート番号
  • サブパーティションテンプレートを削除します。
    ALTER TABLE table_definition SUBPARTITIONテンプレート ()

  • 一般的なサブパーティションテンプレートを作成します。
    テーブルの出荷を作成する
    (order_id NUMBER NOT NULL,
      order_date日付NOT NULL、
      delivery_date日付NOT NULL,
      customer_id NUMBER NOT NULL,
      sales_amount NUMBER NOT NULL
    )
    SUBPARTITION BY RANGE(delivery_date)
         分割テンプレート
       (SUBPARTITION e VALUES LESS THAN (TO_DATE('15-AUG-2006 ','dd-MON-yyyy'))) 、
        SUBPARTITIONは以下の値 (TO_DATE('01-SEP-2006 ','dd-MON-yyyy')) 、
        SUBPARTITION l値がより少ない (最大値)
       (PARTITION p_2006_jul VALUES LESS THAN (TO_DATE('01-AUG-2006 '、'dd-MON-yyyy'))) 、
      PARTITION p_2006_aug値より少ない値 (TO_DATE('01-SEP-2006 '、'dd-MON-yyyy')) 、
      PARTITION p_2006_sep値より少ない値 (TO_DATE('01-OCT-2006 '、'dd-MON-yyyy')) 、
      PARTITION p_2006_oct値より少ない値 (TO_DATE('01-NOV-2006 '、'dd-MON-yyyy')) 、
      PARTITION p_2006_nov値がより少ない (TO_DATE('01-DEC-2006 '、'dd-MON-yyyy')) 、
      PARTITION p_2006_decより少ない値 (TO_DATE('01-JAN-2007 '、'dd-MON-yyyy'))
    ); 
  • ハッシュサブパーティションに適用可能なサブパーティションテンプレートを作成します。
    CREATE TABLE emp_sub_template (deptno NUMBER、empname VARCHAR(32) 、グレードNUMBER)
         PARTITION BY RANGE(deptno) SUBPARTITION BY HASH(empname)
         サブパート寺院4
        (PARTITION p1の値は (1000) よりも低く、
         PARTITION p2の値は (2000) より少なく、
         PARTITION p3の値がより少ない (6000)
        );
  • ハッシュパーティションとサブパーティションに適用できるサブパーティションテンプレートを作成します。
    CREATE TABLE hash_sub_template (deptno NUMBER、empname VARCHAR(32) 、グレードNUMBER)
         PARTITION BY HASH(deptno) SUBPARTITION BY HASH(empname) PARTITIONS 4 SUBPARTITIONS 3; 
  • 一般的なサブパーティションテンプレートを変更します。
    ALTER TABLE hash_sub_template SET SUBPARTITIONテンプレート
    (サブパートa1、
              サブパートb1,
              サブパートc1、
              サブパートd1); 
  • ハッシュサブパーティションに適用可能なサブパーティションテンプレートを変更します。
    ALTER TABLE hash_sub_template SET SUBPARTITIONテンプレート3;