テキスト索引を最初に作成し、更新した後は、 テキスト索引を最新のものに保持する必要があります。 たとえば、テキスト文書をデータベースに追加する際、 またはデータベース内の既存の文書を変更する際は、 索引の内容とデータベースの内容の同期をとるために、 文書に索引を付ける必要があります。 同様に、データベースからテキスト文書を削除する場合、 その用語を索引から除去する必要があります。
RECREATE INDEX ON UPDATE オプションなしでテキスト索引が作成された場合、 トリガーは自動的に、新規文書、変更文書、および削除文書に関する情報を内部ログ表に保管します。 よって、次回索引が更新されるときは、ログ表で参照される文書の索引が作成されます。 ビューに基づくテキスト索引についての詳細は、 ビューに基づくテキスト索引を参照してください。
CREATE INDEX コマンドで RECREATE オプションを指定すると、 更新ごとに索引全体が再作成されます。 このオプションは、ログ表もトリガーも作成しません。
一般に、索引はときどき更新されます。 既存の索引の更新頻度は、ALTER INDEX コマンドを使用して変更できます。
索引更新の頻度は、更新を行う時期、およびキューに入れられる、 テキスト変更の最小数に関して指定します。 指定した日時に、ログ表内の変更の数が指定した数より少なければ、索引は更新されません。
定期的な索引作成を注意深く計画してください。 テキスト文書の索引作成は、多くの時間とリソースが必要なタスクです。 必要な時間は、多くの要因によって変わります。 たとえば、文書のサイズ、 最後の索引更新以後に追加または変更したテキスト文書の数、 およびプロセッサーの能力などです。
注 |
---|
次のような場合、DB2 表でロールバックおよびデッドロック状態が起こり得ます。
|
UPDATE INDEX コマンドを使用すれば、索引を要求時に即時に更新できます。
サマリー |
---|
|
次のコマンドは、索引を更新します。
db2text UPDATE INDEX comment FOR TEXT
このコマンドは、複数のテキスト文書をデータベースに追加済みであり、 これらの文書を直ちに検索する必要がある場合に便利です。
手動の再編成が必要かどうかを判別するには、 次のコマンドを使用して、 db2ext.textindexes ビューを照会してください。
db2 "select reorg_suggested from db2ext.textindexes where INDNAME = 'comment'"MANUAL REORGANIZATION を指定して列をしばしば更新する場合、 更新処理は遅くなります。 手動で再編成するには、次のコマンドを使用してください。
db2text UPDATE INDEX comment FOR TEXT reorganize
ただし、CREATE INDEX 時に AUTOMATIC REORGANIZE を指定する場合には、 必要なときに索引は自動的に再編成されます。