このトピックでは、テーブルの一部のパーティションまたはすべてのパーティションとそのすべてのサブパーティションをデータ損失なしに再編成する方法について説明します。
構文
ALTER TABLE... REORGANIZE PARTITIONステートメントは、テーブルの一部のパーティションまたはすべてのパーティションとそのすべてのサブパーティションをデータ損失なしに再編成するために使用されます。
ALTER TABLE table_name
REORGANIZE PARTITION partition_names INTO (partition_definitions)
partition_definitions
は、{list_partition | range_partition}
です。list_partition
は次のとおりです。VALUES IN (value[, value]...) (サブパーティション、...)
range_partition
は次のとおりです。未満の値 (value[, value]...) (サブパーティション、...)
subpartition
は次のとおりです。{list_subpartition | range_subpartition | hash_partition | key_partition}
list_subpartition
は次のとおりです。SUBPARTITION [subpartition_name] VALUES IN (value[, value]...) [TABLESPACE tablespace_name]
range_subpartition
は次のとおりです。SUBPARTITION [subpartition_name] 未満の値 (value[, value]...) [TABLESPACE tablespace_name]
hash/key_subpartition
は次のとおりです。SUBPARTITION [subpartition_name] [TABLESPACE tablespace_name]
パラメーター
パラメーター | 説明 |
table_name | テーブルの名前。 |
list_partition | 変更する1つ以上の既存のパーティションの名前リスト。 複数のパーティション名はコンマ (,) で区切ります。 |
partition_definitions | 新しいパーティション定義のリスト。 複数のパーティション定義はコンマ (,) で区切ります。 |
partition_name | パーティションの名前。 説明 パーティション名は、既存のすべてのパーティションおよびサブパーティションの名前とは異なる必要があり、オブジェクト識別子の命名規則に従う必要があります。 |
subpartition_name | サブパーティションの名前。 説明 サブパーティション名は、既存のすべてのパーティションおよびサブパーティションの名前とは異なる必要があり、オブジェクト識別子の命名規則に従う必要があります。 |
例
分割
sales_range_range
テーブルのp_2021
パーティションをp_2021_1
、p_2021_2
に分割し、それらをサブパーティション化します: ALTER table sales_range_range REORGANIZE partition p_2021 into ()
PARTITION p_2021_1未満の値 (2021)(
SUBPARTITION q1_2021_1の値は (4) より少なく、
サブパートq2_2021_1の値が以下 (7) 、
サブパートq3_2021_1の値は (10) より少なく、
SUBPARTITION q4_2021_1より少ない値 (13)
),
PARTITION p_2021_2値が2022未満 () (
SUBPARTITION q1_2021_2の値は (4) より少なく、
サブパートq2_2021_2の値が以下 (7) 、
サブパートq3_2021_2の値は (10) より少なく、
サブパートq4_2021_2の値がより少ない (13)
)
);
sales_range_hash
テーブルのq1_2021
パーティションをq1_2021_1
、q1_2021_2
に分割し、それらを分割します: ALTER table sales_range_hash REORGANIZE partition q1_2021 into ()
PARTITION q1_2021_1の値は (2) より少ない (
サブパートs0_1、
サブパーティーs1_1
),
PARTITION q1_2021_2の値が (4) より少ない (
サブパートs0_2、
サブパートs1_2
)
);
パーティション
p0
、p1
、およびp2
をパーティションq1
とq2
に再編成: ALTER TABLE sales_list_hash Reorganize PARTITION p0,p1,p2 into ()
(1,2) のPARTITION q1値 (
サブパートs0、
サブパートs1
),
(3,4) のPARTITION q2値 (
サブパートs3、
サブパートs4
)
);