5.4 索引の再作成
5.4.1 グローバル索引の再作成
Oracle Textでは、RECREATE_INDEX_ONLINE
が用意されていて新規プリファレンスによりCONTEXT
索引を再作成できる一方、元表での挿入、更新および削除機能が保持されています。RECREATE_INDEX_ONLINE
を単一ステップのプロシージャで使用して、グローバル索引用のCONTEXT
索引をオンラインで作成できます。既存の索引を残したまま新規索引が作成されるため、この操作には既存の索引とほぼ同じサイズの記憶域が必要です。また、RECREATE_INDEX_ONLINE
操作はオンラインで実行されるため、操作中に元表で挿入、更新および削除を実行できます。再作成プロセス中に発生したすべての挿入、更新および削除操作は、オンライン保留中キューに記録されます。
-
再作成操作の完了後、新しい情報がすぐには反映されない場合があります。オンラインでの索引の作成の場合と同様に、再作成操作の完了後に索引を同期化して完全に最新にする必要があります。
-
再作成操作中に索引に対して発行される同期化は、既存のデータに対して処理されます。問合せがエラーを戻す場合、同期化はブロックされます。
-
再作成操作の過程で索引に対して発行された最適化コマンドは、なにも実行されずにエラーなしで即時に戻ります。
-
RECREATE_INDEX_ONLINE
の間は、ほぼ通常どおりに索引を問い合せることができます。問合せは、最後のスワップが終わるまで、既存の索引およびポリシーに基づいて結果を戻します。また、挿入、更新および削除操作を発行してそれを同期化した場合は、既存の索引を問い合せると新しい行を表示できます。
ノート:
RECREATE_INDEX_ONLINE
では、トランザクション・ベースの問合せはサポートされていません。
時間制限付き同期化によるグローバル索引の再作成
索引の再作成を制御して、営業時間外にSYNC_INDEX
の時間制限を設定し、索引を追加的に再作成できます。CREATE_SHADOW_INDEX
プロシージャをPOPULATE_PENDING
およびmaxtimeとともに使用します。
5.4.2 ローカル・パーティション索引の再作成
索引がローカルにパーティション化されている場合は、1回のステップで索引を再作成できません。最初にシャドウ・ポリシーを作成してから、すべてのパーティションに対してRECREATE_INDEX_ONLINE
プロシージャを実行する必要があります。パーティションの索引の再作成で索引パーティション・データおよび索引パーティション・メタデータをスワップするかどうかを示すSWAP
またはNOSWAP
を指定できます。
パラメータ文字列でNOPOPULATE
を指定した場合、このプロシージャを使用して、各パーティションのメタデータ(記憶域プリファレンスなど)を更新できます。このキーワードは、時間が限定された同期化によってシャドウ索引を追加的に構築する場合に便利です。NOPOPULATE
を指定した場合、NOSWAP
が暗黙的に強制されます。
-
すべてのパーティションで
NOSWAP
が使用されている場合、既存の索引とほぼ同じサイズの記憶域が必要です。索引パーティションの再作成中にスワッピングは実行されないため、パーティションに対する問合せは通常処理されます。複数のパーティションにわたる問合せは、スワッピングの段階に到達するまで、パーティションをまたがって一貫した結果を戻します。 -
SWAP
を指定してパーティションを再構築する場合、その操作に必要な記憶域は、既存の索引パーティションとほぼ同じサイズです。索引パーティション・データおよび索引パーティション・メタデータは再作成後にスワッピングされるため、複数のパーティションにわたる問合せはパーティション間で一貫した結果を戻しませんが、各索引パーティションに関しては常に正しい結果となります。 -
SWAP
を指定した場合、パーティションに対する挿入、更新および削除操作ならびに同期化は、スワッピング・プロセス中にブロックされます。
同時スワッピングによるローカル索引の再作成
ローカル・パーティション索引をオンラインで再作成して、プリファレンスを作成または変更できます。索引およびパーティションのメタデータのスワッピングは、この処理の最後に実行されます。複数のパーティションにわたる問合せは、最後にEXCHANGE_SHADOW_INDEX
が実行されているときを除く再作成の処理中、パーティションをまたがって一貫した結果を戻します。
同時スワッピングによるローカル索引再作成のスケジューリング
CTX.DDL
パッケージのRECREATE_INDEX_ONLINE
により、ローカル・パーティション索引を追加的に再作成できます。ここで、パーティションは最後にすべてスワッピングされます。
パーティションごとのスワッピングによるローカル索引の再作成
同時にすべてのパーティションをスワッピングするかわりに、新しいプリファレンスを使用して索引をオンラインで再作成でき、各パーティションはその完了時にスワッピングされます。すべてのパーティションにわたる問合せは、その処理中に一貫性のない結果を戻す場合があります。このプロシージャでは、CREATE_SHADOW_INDEX
がRECREATE_INDEX_ONLINE.
とともに使用されます