Aktualisieren und Reorganisieren eines Textindexes

Nachdem Sie den Textindex zum ersten Mal erstellt und aktualisiert haben, muss der Index stets auf dem neuesten Stand gehalten werden. Wenn Sie beispielsweise ein Textdokument zu einer Datenbank hinzufügen oder ein vorhandenes Dokument in einer Datenbank ändern, muss das Textdokument indexiert werden, um den Inhalt des Indexes mit dem Inhalt der Datenbank synchron zu halten. Ebenso müssen beim Löschen eines Textdokuments aus einer Datenbank die zugehörigen Begriffe aus dem Index entfernt werden.

Wurde der Textindex ohne die Option RECREATE INDEX ON UPDATE erstellt, speichern die Auslöser automatisch Informationen über neue, geänderte oder gelöschte Dokumente in einer internen Protokolltabelle. Bei der nächsten Indexaktualisierung werden dementsprechend die Dokumente indexiert, auf die in der Protokolltabelle verwiesen wird. Zusätzliche Informationen zu einem Textindex für Sichten finden Sie in Textindizes für Sichten.

Geben Sie die Option RECREATE im Befehl CREATE INDEX an, wird der Index bei jeder Aktualisierung völlig neu erstellt. Mit dieser Option werden keine Protokolltabellen oder Auslöser erstellt.

In der Regel aktualisieren Sie einen Index in bestimmten Intervallen. Die Aktualisierungshäufigkeit kann für einen vorhandenen Index mit Hilfe des Befehls ALTER INDEX geändert werden.

Die Häufigkeit der Indexaktualisierung wird in Bezug auf den Zeitpunkt, zu dem die Aktualisierung auszuführen ist, und die Mindestanzahl von Textänderungen angegeben, die auflaufen müssen. Wenn zum angegebenen Zeitpunkt (Tag und Uhrzeit) nicht genügend Änderungen in der Protokolltabelle aufgezeichnet sind, wird der Index nicht aktualisiert.

Sie sollten die regelmäßige Indexierung sorgfältig planen, da das Indexieren von Textdokumenten ein zeitaufwändiger und ressourcenintensiver Prozess ist. Die benötigte Zeit hängt von zahlreichen Faktoren ab. Hierzu gehört z. B. die Größe der Dokumente, die Anzahl der Textdokumente, die seit der vorigen Indexaktualisierung hinzugefügt oder geändert wurden, und die Leistungskapazität des Prozessors.

Anmerkung

In folgenden Fällen können für eine DB2-Tabelle ROLLBACK-Operationen erforderlich werden oder gegenseitige Sperren auftreten.

Der Befehl UPDATE INDEX ermöglicht Ihnen, einen Index unverzüglich auf Anforderung zu aktualisieren.

Zusammenfassung

Wann
Wenn ein Index sofort aktualisiert werden muss, ohne auf die festgelegte regelmäßige Indexierung zu warten.
Befehl
UPDATE INDEX
Berechtigung
Zugriffsrecht CONTROL für die Tabelle

Mit folgendem Befehl wird der Index aktualisiert:

db2text UPDATE INDEX comment FOR TEXT

Dieser Befehl ist nützlich, wenn Sie einer Datenbank mehrere Textdokumente hinzugefügt haben und diese unverzüglich durchsuchen wollen.

Um festzustellen, ob eine manuelle Reorganisation erforderlich ist, fragen Sie die Sicht db2ext.textindexes mit folgendem Befehl ab:

db2 "select reorg_suggested from db2ext.textindexes where INDNAME = 'comment'"

Wenn Sie MANUAL REORGANIZATION angeben und häufig Aktualisierungen für Spalten ausführen, verlangsamt sich der Aktualisierungsprozess. Geben Sie zur manuellen Reorganisation den folgenden Befehl ein:

db2text UPDATE INDEX comment FOR TEXT reorganize

Wenn jedoch AUTOMATIC REORGANIZE im Befehl CREATE INDEX angegeben wurde, wird der Index automatisch reorganisiert, wenn dies erforderlich ist.