IBM Books
(C) IBM Corp. 2003

DB2 Net Search Extender Verwaltung und Programmierung

UPDATE INDEX

Dieser Befehl startet den Indexierungsprozess sofort, indem er den Index auf den neuesten Stand bringt, so dass er den aktuellen Inhalt der Textspalten widerspiegelt, denen der Index zugeordnet ist.

Während der Ausführung der Aktualisierung ist das Suchen mit dem Vergleichselement CONTAINS möglich. Bei einem Index mit einer aktivierten, im Cache gespeicherten Ergebnistabelle ist das Suchen über eine gespeicherte Prozedur während der Aktualisierung ebenfalls möglich. Allerdings können die Spalten in der im Cache gespeicherten Tabelle neue Werte aufweisen, obwohl der geänderte Text im Volltextindex noch nicht festgeschrieben (COMMIT) ist.

Bei Verwendung der Option RECREATE INDEX ON UPDATE im Befehl CREATE INDEX wird der Inhalt des Indexes vor der Neuerstellung gelöscht. Bis zum Abschluss der Aktualisierung werden leere Ergebnisse zurückgegeben.

Berechtigung

Gemäß den DB2-Katalogsichten muss die Benutzer-ID in diesem Befehl das Zugriffsrecht CONTROL für die Tabelle besitzen, für die der Volltextindex erstellt wurde.

Befehlssyntax

>>-UPDATE-INDEX--+-----------------+--indexname--FOR-TEXT------->
                 '-indexschema-"."-'
 
>--+------------+--+---------------------+---------------------->
   '-REORGANIZE-'  '-COMMITCOUNT--anzahl-'
 
>--+----------------------+--+-----------------------+---------><
   '-USING-UPDATE-MINIMUM-'  '-|verbindungsoptionen|-'
 
verbindungsoptionen:
 
|--+-------------------------------------------------------------------+--|
   '-CONNECT-TO--datenbankname--+------------------------------------+-'
                                '-USER--benutzer-id--USING--kennwort-'
 
 

Befehlsparameter

indexschema
Das Schema des Textindexes. Dies entspricht der Angabe im Befehl CREATE INDEX. Wenn kein Schema angegeben wurde, wird die Benutzer-ID der DB2-Verbindung verwendet.

indexname
Der Name des Textindexes. Er entspricht der Angabe im Befehl CREATE INDEX.

REORGANIZE
Wenn eine Textspalte häufig aktualisiert wird, können nachfolgende Aktualisierungen am Index ineffizient werden. Um den Aktualisierungsprozess wieder effizient zu machen, kann der Index reorganisiert werden. Anhand der Sicht DB2EXT.TEXTINDEXES können Sie feststellen, ob ein Index reorganisiert werden muss.

Verwenden Sie die Option REORGANIZE AUTOMATIC des Befehls CREATE INDEX, wenn Sie eine manuelle Überprüfung und Reorganisation des Indexes vermeiden wollen.

Anmerkung

Der Reorganisationsprozess findet nach einer regulären Aktualisierung statt.

USING UPDATE MINIMUM
Diese Option verwendet die Einstellungen für UPDATE MINIMUM aus dem Befehl CREATE INDEX und startet eine inkrementelle Aktualisierung (Teilaktualisierung), sofern die angegebene Anzahl von Änderungen erreicht wurde. Die Standardfunktionsweise besteht darin, die Aktualisierung bedingungslos zu starten.

Für verteilte Datenbanken wird UPDATE MINIMUM auf jedem Knoten geprüft.

Weitere Informationen finden Sie in CREATE INDEX.

COMMITCOUNT anzahl
Ein ganzzahliger Wert (INTEGER): Ein Wert >=0 gibt die Anzahl von Dokumenten an, die in einer Transaktion durch die Suchsteuerkomponente sowie durch DB2 bei Teilaktualisierungen verarbeitet werden.

Jedoch gibt es bei einleitenden Aktualisierungen, wie der ersten Aktualisierung nach Ausführung des Befehls CREATE INDEX oder einer Aktualisierung durch die Option RECREATE INDEX ON UPDATE nur eine logische Transaktion, bei der der Wert für COMMITCOUNT ignoriert wird. Diese Einstellung kann mit Hilfe des Befehls ALTER INDEX geändert werden.

CONNECT TO datenbankname
Der Name der Datenbank, die das Ziel für diesen Befehl darstellt. Dieser Parameter kann ausgelassen werden, wenn die Umgebungsvariable DB2DBDFT definiert ist und der Benutzer den Befehl auf dem Server ausführt. Beachten Sie, dass die Benutzer-ID über die erforderlichen DB2-Berechtigungen verfügen muss.

USER benutzer-id USING kennwort
Geben Sie ein kennwort und eine benutzer-id für die Herstellung einer Verbindung zur Datenbank an. Wenn Sie diese Angaben nicht machen, wird versucht, mit der aktuellen Benutzer-ID ohne Kennwort eine Verbindung herzustellen.

Benutzung

Dieser Befehl wird synchron ausgeführt. Er startet die Aktualisierungsverarbeitung auf allen erforderlichen logischen/physischen DB2-Knoten in einer verteilten DB2-Umgebung. Die Verarbeitungsdauer hängt von der Anzahl zu indexierender Dateien sowie von der Anzahl bereits indexierter Dokumente ab. Der Status der Aktualisierung kann anhand einer Sicht, die für jeden Index erstellt wird, abgefragt werden. Der Name dieser Sicht ist der Spalte EVENTVIEWNAME der Sicht DB2EXT.TEXTINDEXES zu entnehmen. Weitere Informationen finden Sie in Anhang C, Net Search Extender-Informationskataloge.

Es gibt zwei verschiedene Optionen, um die Anzahl der festgeschriebenen Dokumente anzuzeigen, die verarbeitet wurden. Verwenden Sie die Sicht DB2EXT.TEXTINDEXES (NUMBERDOCS), um festzustellen, ob eine Aktualisierung noch aktiv ist und wie viele Dokumente im Index festgeschrieben wurden. Verwenden Sie die Ereignissicht, die dem Index zugeordnet ist, für Informationen zum Starten, Festschreiben von Änderungen und Beenden der Aktualisierungsverarbeitung.

Die Anzahl der nicht festgeschriebenen Dokumente, die zur Verarbeitung anstehen, können Sie mit dem Befehl CONTROL LIST ALL LOCKS anzeigen.

Anmerkung

In den Sichten werden nur Informationen des verbundenen Knotens angezeigt.

Bei Teilaktualisierungen in einer Basistabelle mit physischen Knoten muss die Uhrzeit auf allen Knoten synchronisiert werden. Andernfalls gehen Aktualisierungen möglicherweise verloren oder werden gar nicht ausgeführt.

Sie können den Befehl nicht absetzen, wenn einer der folgenden Befehle momentan für den Index ausgeführt wird:

Nach der Aktualisierung eines Indexes mit einer inaktivierten im Cache gespeicherten persistenten Ergebnistabelle wird der persistente Cache gelöscht, so dass der nächste Befehl ACTIVATE CACHE ihn auf der Grundlage des Datenbankinhalts erneut erstellt.

Wenn der Benutzer diesen Befehl unterbricht, werden alle an der Aktualisierungsfunktion beteiligten Prozesse gestoppt. Wenn ein COMMITCOUNT-Wert in einer Teilaktualisierung verwendet wurde, können einige Aktualisierungen im Index sichtbar sein, während andere eventuell einen neuen Befehl UPDATE benötigen.

Zum Stoppen der automatischen Aktualisierung eines Indexes suchen Sie nach dem Prozess unter der Benutzer-ID des DB2-Exemplareigners, der den Befehl zur Indexaktualisierung in der Partition ausführt, die für Aktualisierungsservices verwendet wird. Stoppen Sie diesen Prozess und die Aktualisierungsverarbeitung in allen Partitionen.

Anmerkung

Da der Befehl in zwei getrennten Phasen, bei der Indexerstellung in allen Partitionen und bei den einleitenden Aktualisierungen des Indexes ausgeführt wird, müssen Sie einen db2text drop index-Befehl absetzen, um sicherzustellen, dass der Index nicht teilweise verfügbar ist. Wenn dieser Befehl nicht abgesetzt wird, führt die nächste Aktualisierung, die durch einen UPDATE-Befehl oder durch die Option UPDATE FREQUENCY ausgelöst werden kann, eine vollständige Neuindexierung durch, um einen konsistenten Status sicherzustellen.

Änderungen an der Datenbank

Bei Verwendung der Replikationserfassungstabellen werden in der Datenbank die folgenden Änderungen durchgeführt.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]