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 (A-D)

 

CREATE TEXT INDEX-Anweisung

Erstellt einen Textindex.

Syntax
CREATE TEXT INDEX Textindexname 
ON [ Eigentümer.]Tabellenname( Spaltenname, ... ) 
 [ IN DBSpace-Name ]
 [ CONFIGURATION [ Eigentümer.]Textkonfigurationsname ]
 [ { IMMEDIATE REFRESH 
      | MANUAL REFRESH 
      | AUTO REFRESH [ EVERY Ganzzahl { MINUTES | HOURS } ] ]
    }
Parameter
  • ON-Klausel   Verwenden Sie diese Klausel, um die Tabelle und die Spalten anzugeben, für die der Textindex erstellt werden soll.

  • IN-Klausel   Verwenden Sie diese Klausel, um den DBSpace anzugeben, in dem sich der Textindex befindet. Wenn diese Klausel nicht angegeben ist, wird der Textindex in dem DBSpace erstellt, der in der Option default_dbspace angegeben wurde.

  • CONFIGURATION-Klausel   Verwenden Sie diese Klausel, um das Textkonfigurationsobjekt anzugeben, wenn Sie den Textindex erstellen. Wenn diese Klausel nicht angegeben ist, wird das Textkonfigurationsobjekt default_nchar verwendet, sofern eine der Spalten im Index NCHAR ist, sonst wird das Textkonfigurationsobjekt default_char verwendet.

  • REFRESH-Klausel   Verwenden Sie diese Klausel, um den Aktualisierungstyp des Textindexes anzugeben. Wenn Sie keine REFRESH-Klausel angeben, wird IMMEDIATE REFRESH als Standardwert verwendet. Nachstehend finden Sie eine Liste der Aktualisierungstypen, die Sie angeben können:

    • IMMEDIATE REFRESH   Geben Sie IMMEDIATE REFRESH an, wenn der Textindex jedes Mal aktualisiert werden soll, wenn Änderungen in der Basistabelle Auswirkungen auf die Daten im Textindex haben.

    • AUTO REFRESH   Benutzen Sie diese Klausel, um den Textindex automatisch mit einem internen Serverereignis zu aktualisieren. Verwenden Sie die Subklausel EVERY, um das Aktualisierungsintervall in Minuten oder Stunden anzugeben. Wenn Sie AUTO REFRESH ohne Intervallinformationen angeben, aktualisiert der Datenbankserver den Textindex jeweils nach 60 Minuten. Ein Textindex kann früher als durch die AUTO REFRESH-Klausel angegeben aktualisiert werden, wenn der Wert pending_size, der von der Systemprozedur sa_text_index_stats zurückgegeben wird, 20% der Textindexgröße bei der letzten Aktualisierung überschreitet. Ein internes Ereignis wird einmal pro Minute durchgeführt, um diesen Zustand für alle AUTO REFRESH-Textindizes zu prüfen.

    • MANUAL REFRESH   Benutzen Sie diese Klausel, um anzugeben, dass der Textindex manuell aktualisiert wird.

    Weitere Hinweise zu Aktualisierungstypen finden Sie unter Textindex-Aktualisierungstypen.

Bemerkungen

Sie können keinen Textindex für Ansichten, materialisierte Ansichten oder temporäre Tabellen erstellen.

Ein IMMEDIATE REFRESH-Textindex wird während der Erstellung mit Daten gefüllt und für die Tabelle wird eine Exklusivsperre während dieser ersten Aktualisierung aufrechterhalten. IMMEDIATE REFRESH-Textindizes bieten umfassende Unterstützung für Abfragen, die die Snapshot-Isolation verwenden.

MANUAL- und AUTO REFRESH-Textindizes müssen initialisiert (aktualisiert) werden, nachdem sie erstellt wurden.

Die Aktualisierung von AUTO REFRESH-Textindizes durchsucht die Tabelle unter Verwendung der Isolationsstufe 0. Weitere Hinweise finden Sie unter isolation_level-Option [Datenbank] [Kompatibilität].

Nachdem ein Textindex erstellt wurde, können Sie ihn nicht mehr von oder auf IMMEDIATE REFRESH ändern. Wenn eine dieser Änderungen erforderlich ist, müssen Sie den Textindex löschen und wiederherstellen.

Sie können einen AUTO REFRESH-Textindex manuell aktualisieren, indem Sie die REFRESH TEXT INDEX-Anweisung verwenden. Weitere Hinweise finden Sie unter REFRESH TEXT INDEX-Anweisung.

Hinweise zur Anzeige von Textindizes und der darauf Bezug nehmenden Textkonfigurationsobjekte finden Sie unter Textindizes in der Datenbank anzeigen.

Berechtigungen

Sie müssen Eigentümer der Basistabelle sein, DBA-Berechtigung besitzen oder die 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

Das folgende Beispiel erstellt einen Textindex myTxtIdx für die Spalte Description der Tabelle MarketingInformation in der Datenbank demo. Das MarketingTextConfg-Textkonfigurationsobjekt wird verwendet und das Aktualisierungsintervall ist auf alle 24 Stunden gesetzt.

CREATE TEXT INDEX myTxtIdx ON MarketingInformation ( Description ) 
   CONFIGURATION MarketingTextConfig
   AUTO REFRESH EVERY 24 HOURS;