部分インデックスを使用すると、パーティション分割されたテーブル全体ではなく、選択した特定のパーティションに対してセカンダリインデックスを構築できます。ALTER TABLE ... ALTER INDEX を使用して、特定のパーティションまたはサブパーティションに対して部分インデックスを追加、再構築、または削除します。
構文
以下の 3 つの操作は、すべて同じ基本構造を共有します:
ALTER TABLE table_name ALTER INDEX index_name
{ ADD | REBUILD | DROP } PARTITION partition_name0 [, partition_name1, ...];| 句 | 説明 |
|---|---|
ADD PARTITION | 指定したパーティションに部分インデックスを追加します。 |
REBUILD PARTITION | 指定したパーティション上で部分インデックスを再構築します。 |
DROP PARTITION | 指定したパーティションから部分インデックスを削除します。 |
パラメーター
| パラメーター | 説明 |
|---|---|
table_name | パーティション分割されたテーブルの名前です。 |
index_name | 変更対象のインデックスの名前です。 |
partition_name0 | パーティションまたはサブパーティションの名前です。複数のパーティションまたはサブパーティションを対象とする場合は、その名前をカンマで区切って並べます。 |
例
パーティションに対する部分インデックスの追加、再構築、および削除
以下の例では、orders テーブルと o_ind_amou インデックスを使用します。
追加: o_ind_amou 部分インデックスを orders_202212 パーティションに追加します。
ALTER TABLE orders ALTER INDEX o_ind_amou ADD PARTITION orders_202212;再構築: o_ind_amou 部分インデックスを orders_202203、orders_202204、および orders_202205 パーティション上で再構築します。
ALTER TABLE orders ALTER INDEX o_ind_amou REBUILD PARTITION orders_202203, orders_202204, orders_202205;削除: o_ind_amou 部分インデックスを orders_202201 および orders_202202 パーティションから削除します。
ALTER TABLE orders ALTER INDEX o_ind_amou DROP PARTITION orders_202201, orders_202202;サブパーティションに対する部分インデックスの追加、再構築、および削除
以下の例では、tenants テーブルと ind_date インデックスを使用します。
追加: ind_date 部分インデックスを p0_3 および p0_4 サブパーティションに追加します。
ALTER TABLE tenants ALTER INDEX ind_date ADD PARTITION p0_3, p0_4;再構築: ind_date 部分インデックスを p0_1 および p1_1 サブパーティション上で再構築します。
ALTER TABLE tenants ALTER INDEX ind_date REBUILD PARTITION p0_1, p1_1;削除: ind_date 部分インデックスを p1_1 サブパーティションから削除します。
ALTER TABLE tenants ALTER INDEX ind_date DROP PARTITION p1_1;