Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (P-Z)

 

REFRESH TEXT INDEX-Anweisung

Aktualisiert einen Textindex.

Syntax
REFRESH TEXT INDEX Textindexname 
ON [ Eigentümer.]Tabellenname
[ WITH { 
      ISOLATION LEVEL Isolationsstufe 
      | EXCLUSIVE MODE 
      | SHARE MODE } ]
[ FORCE { BUILD | INCREMENTAL } ]
Parameter
  • WITH-Klausel   Benutzen Sie die WITH-Klausel zur Angabe der Art der Sperre, die Sie während der Aktualisierung für die Basistabellen benutzen möchten. Die Arten der gesetzten Sperren legen fest, wie der Textindex mit Daten gefüllt wird und wie die Gleichzeitigkeit von Transaktionen betroffen ist. Wenn Sie die WITH-Klausel nicht angeben, ist der Standardwert WITH ISOLATION LEVEL READ UNCOMMITTED, unabhängig von der für die Verbindung eingerichteten Isolationsstufe.

    Sie können folgende Optionen für die WITH-Klausel festlegen:

    • ISOLATION LEVEL Isolationsstufe   Verwenden Sie WITH ISOLATION LEVEL, um die Isolationsstufe für die Ausführung des Aktualisierungsvorgangs zu ändern. Hinweise zu Isolationsstufen finden Sie unter Transaktionen und Isolationsstufen verwenden und Isolationsstufen und Konsistenz.

      Die ursprüngliche Isolationsstufe der Verbindung wird am Ende der Anweisungsausführung wiederhergestellt.

    • EXCLUSIVE MODE   Verwenden Sie WITH EXCLUSIVE MODE, wenn Sie die Isolationsstufe nicht ändern wollen, aber sicherstellen möchten, dass die Daten aktualisiert werden, um mit den festgeschriebenen Daten in der Basistabelle konsistent zu sein. Wenn Sie WITH EXCLUSIVE MODE verwenden, werden exklusive Tabellensperren in der Basistabelle gesetzt und keine andere Transaktion kann Abfragen, Aktualisierungen oder andere Aktionen mit den Basistabellen durchführen, bis der Aktualisierungsvorgang abgeschlossen ist. Wenn keine Tabellensperren erhalten werden können, schlägt die Aktualisierung fehl und es wird ein Fehler zurückgegeben. Weitere Hinweise finden Sie unter Tabellensperren.

    • SHARE MODE   Verwenden Sie WITH SHARE MODE, um anderen Transaktionen Schreibzugriff auf die Basistabelle zu gewähren, während der Aktualisierungsvorgang läuft. Wenn diese Klausel angegeben wird, werden vor dem Ausführen des Aktualisierungsvorgangs gemeinsame Tabellensperren für die Basistabelle eingerichtet und aufrecht erhalten, bis der Aktualisierungsvorgang abgeschlossen ist. Weitere Hinweise finden Sie unter Tabellensperren.

  • FORCE-Klausel   Verwenden Sie diese Klausel, um die Aktualisierungsmethode anzugeben. Wenn diese Klausel nicht angegeben ist, entscheidet der Datenbankserver, ob eine inkrementelle Aktualisierung oder ein kompletter Neuaufbau erfolgt. Dabei richtet er sich danach, wie stark die Tabelle geändert wurde. Weitere Hinweise finden Sie unter Textindex-Aktualisierungstypen.

    • FORCE BUILD-Klausel   Verwenden Sie diese Klausel, um einen kompletten Neuaufbau des Textindexes zu erzwingen.

    • FORCE INCREMENTAL-Klausel   Verwenden Sie diese Klausel, um eine inkrementelle Aktualisierung des Textindexes zu erzwingen.

Bemerkungen

Diese Anweisung kann nur für Textindizes benutzt werden, die als MANUAL REFRESH oder AUTO REFRESH definiert sind.

Wenn Sie die FORCE-Klausel verwenden, können Sie die Ergebnisse der Systemprozedur sa_text_index_stats prüfen, um zu entscheiden, ob ein kompletter Neuaufbau (FORCE BUILD) oder eine inkrementelle Aktualisierung (FORCE INCREMENTAL) besser geeignet ist. Weitere Hinweise finden Sie unter sa_text_index_stats-Systemprozedur.

Sie können die REFRESH TEXT INDEX-Anweisung nicht für einen Textindex ausführen, der als IMMEDIATE REFRESH definiert ist.

Für MANUAL REFRESH-Textindizes verwenden Sie die Systemprozedur sa_text_index_stats, um zu ermitteln, ob der Textindex aktualisiert werden muss. Teilen Sie pending_length durch doc_length und verwenden Sie den Prozentsatz als Richtlinie für die Entscheidung, ob eine Aktualisierung erforderlich ist. Um zu ermitteln, welche Art des Neuaufbaus erforderlich ist, verwenden Sie dieselbe Vorgehensweise für deleted_length und doc_count.

Berechtigungen

Sie müssen Eigentümer der Basistabelle sein oder DBA- bzw. REFERENCES-Berechtigung haben.

Diese Anweisung kann nicht ausgeführt werden, wenn mit der WITH HOLD-Klausel geöffnete Cursor vorhanden sind, die entweder Anweisungs- oder Transaktions-Snapshots verwenden. Weitere Hinweise finden Sie unter Snapshot-Isolation.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Die folgende Anweisung aktualisiert einen Textindex namens MarketingTextIndex und erzwingt seinen Neuaufbau.

REFRESH TEXT INDEX MarketingTextIndex ON MarketingInformation
   FORCE BUILD;