パーティション表および索引に対する個々のメンテナンス操作を説明する前に、ALTER
TABLE
文に指定可能なUPDATE
INDEXES
句の影響を説明します。
デフォルトでは、パーティション表に対する表メンテナンス操作の多くにより、対応する索引または索引パーティションが無効化(UNUSABLE
とマーク)されます。索引全体または各パーティション(グローバル索引の場合)を再作成する必要があります。メンテナンス操作で、ALTER
TABLE
文にUPDATE
INDEXES
を指定すると、データベースによりこのデフォルトの動作が上書きされます。この句を指定すると、メンテナンス操作のDDL文の実行時に、データベースにより索引が更新されます。これには、次の利点があります。
索引が、ベース表操作とともに更新されます。後で更新して、個別に索引を再作成する必要はありません。
グローバル索引はUNUSABLE
とマークされないため、高い可用性を備えています。パーティションDDLの実行中でもこれらの索引は使用可能なままで、表内の影響を受けないパーティションにアクセスできます。
すべての無効な索引を再作成するために、名前を調べる必要はありません。
ローカル索引のオプションの句で、更新されたローカル索引やそのパーティションに物理特性および記憶域特性を指定できます。
各ローカル索引のそれぞれのパーティションに物理属性、表領域記憶域およびロギングを指定できます。または、PARTITION
キーワードのみを指定して、次のようにデータベースによるパーティション属性の更新を行うことも可能です。
単一の表パーティションに対する操作(MOVE
PARTITION
やSPLIT
PARTITION
など)では、対応する索引パーティションは影響を受ける索引パーティションの属性を継承します。データベースでは新しい索引パーティションの名前は生成されないため、この操作により作成される新しい索引パーティションは、対応する新しい表パーティションから名前を継承します。
MERGE
PARTITION
操作の場合、この操作によって作成されたローカル索引パーティションは、作成された表パーティションの名前とローカル索引の属性を継承します。
コンポジット・パーティション索引では、各サブパーティションに表領域記憶域を指定できます。
関連項目:
索引を更新する構文については、ALTER TABLE
のupdate_all_indexes_clause
を参照してください。
次の操作では、UPDATE
INDEXES
句がサポートされています。
ADD
PARTITION
| SUBPARTITION
COALESCE
PARTITION
| SUBPARTITION
DROP
PARTITION
| SUBPARTITION
EXCHANGE
PARTITION
| SUBPARTITION
MERGE
PARTITION
| SUBPARTITION
MOVE
PARTITION
| SUBPARTITION
SPLIT
PARTITION
| SUBPARTITION
TRUNCATE
PARTITION
| SUBPARTITION
SKIP_UNUSABLE_INDEXES初期化パラメータ
SKIP_UNUSABLE_INDEXES
は、デフォルト値がTRUE
の初期化パラメータです。この設定により、UNUSABLE
とマークされた索引および索引パーティションのエラー・レポートが無効化されます。使用できない要素を避けるために、データベースが別の実行計画を選択しないようにするには、このパラメータをFALSE
に設定する必要があります。
索引を自動更新する際の考慮事項
UPDATE
INDEXES
を指定する際は、次の影響に注意してください。
事前にUNUSABLE
とマークされていた索引が更新されるため、パーティションDDL文の実行時間が長くなる可能性があります。ただし、この増加した時間を、索引を更新せずにDDLを実行し、すべての索引を再作成する場合にかかる時間と比較する必要があります。パーティションのサイズが表サイズの5%に満たない場合は、経験則から言って、索引を更新する方が短時間ですみます。
EXCHANGE
操作が高速な操作ではなくなりました。こちらも、DDLを実行してすべての索引を再作成する場合にかかる時間と比較する必要があります。
グローバル索引を含む表を更新する際の考慮事項は、次のとおりです。
索引はその場で更新されます。索引の更新は記録され、REDOおよびUNDOレコードが生成されます。反対に、グローバル索引全体を再作成する場合は、NOLOGGING
モードで実行できます。
索引全体を手動で再作成すると、領域がより有効に使用されて圧縮されるため、より効率的な索引が作成されます。
UPDATE INDEXES
句は、索引構成表ではサポートされていません。ただし、DROP
PARTITION
、TRUNCATE
PARTITION
およびEXCHANGE
PARTITION
操作でUPDATE GLOBAL INDEXES
句を使用して、索引構成表のグローバル索引を使用可能なままにできます。前述のリストのその他の操作では、索引構成表のグローバル索引は使用可能なままになります。また、索引構成表のローカル索引パーティションは、MOVE
PARTITION
操作後も使用可能なままです。