4D v16.3

CREATE INDEX

Home

 
4D v16.3
CREATE INDEX

CREATE INDEX 


 

CREATE INDEX ( Tabellenname ; FelderArray ; IndexTyp ; IndexName {; *} ) 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Tabelle für Erstellen des Index
FelderArray  Array Zeiger in Zeiger auf Feld(er) zur Indizierung
IndexTyp  Lange Ganzzahl in Art des anzulegenden Index: -1 = Keywords 0 = Standard,1 = Standard BTree, 3 = Cluster BTree
IndexName  Text in Name des anzulegenden Index
Operator in Mit * = Asynchrone Indizierung

Der Befehl CREATE INDEX erstellt zwei Indexarten:

  • Einen Standard Index auf ein oder mehrere Datenfelder (zusammengesetzter Index)
  • Index nach Schlüsselwörtern auf ein Feld

Der Index für die Tabelle wird in einem oder mehreren Feldern, definiert im Array FelderArray erstellt. Das Array enthält eine einzelne Zeile für einen einfachen Index und zwei oder mehr Zeilen für einen zusammengesetzten Index - mit Ausnahme des Index mit Schlüsselwörtern. Bei zusammengesetzten Indizes ist die Reihenfolge der Felder im Array beim Einrichten des Index von Bedeutung.

Im Parameter IndexTyp definieren Sie den Indextyp. Sie können eine der nachfolgenden Konstanten unter dem Thema Indextyp übergeben:

Konstante Typ Wert Kommentar
Cluster BTree index Lange Ganzzahl 3 Index vom Typ B-Baum mit Clustern. Dieser Typ ist optimal für Indizes mit wenigen Schlagwörtern, z.B. wenn dieselben Werte in den Daten sich häufig wiederholen.
Default index type Lange Ganzzahl 0 4D definiert den Indextyp (ausgenommen Index nach Schlüsselwörtern), der gemäß dem Feldinhalt am besten passt.
Keywords index Lange Ganzzahl -1 Volltext-Index, der die Indizierung des Feldinhalts Wort für Wort ermöglicht. Dieser Indextyp lässt sich nur für Datenfelder vom Typ Text, alphanumerisch oder Bild verwenden. Achtung: Volltext-Indizes können nicht zusammengesetzt sein.
Standard BTree index Lange Ganzzahl 1 Index vom Typ Standard B-Baum. Dieser vielfältige Indextyp wird in den bisherigen Versionen von 4D verwendet.

Hinweis: Ein Index vom Typ B-Tree, der einem Datenfeld vom Typ Text zugeordnet ist, speichert maximal die ersten 1024 Zeichen des Datenfeldes. Deshalb funktionieren in diesem Kontext Suchläufe nach Strings mit mehr als1024 Zeichen nicht.

Im Parameter IndexName übergeben Sie den Namen des zu erstellenden Index. Sie müssen einen Namen übergeben, wenn dem gleichen Feld mehrere verschiedene Indizes zugewiesen werden können und wenn Sie diese über den Befehl DELETE INDEX einzeln löschen möchten. Gibt es den in IndexName bezeichneten Index bereits, führt der Befehl nichts aus.

Mit dem optionalen Parameter * können Sie die Indizierung asynchron ausführen. In diesem Modus wird die Originalmethode nach Aufrufen aus dem Befehl weiter ausgeführt, unabhängig ob die Indizierung abgeschlossen ist oder noch läuft.

Stößt CREATE INDEX auf gesperrte Datensätze, werden sie nicht indiziert. Der Befehl wartet darauf, dass sie entsperrt werden.
Tritt während der Ausführung des Befehls ein Problem auf, wie z.B. nicht-indiziertes Feld, wird ein Fehler generiert. Sie können ihn mit einer Fehlerverwaltungsmethode abfangen.

Zwei Standard-Indizes auf die Felder “Last Name” und “Telephone” in der Tabelle [Customers] erstellen:

 ARRAY POINTER(fieldPtrArr;1)
 fieldPtrArr{1}:=->[Customers]LastName
 CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CustLNameIdx")
 fieldPtrArr{1}:=->[Customers]Telephone
 CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CustTelIdx")

Einen Index nach Schlüsselwörtern auf das Feld “Observations” in der Tabelle [Customers] erstellen:

 ARRAY POINTER(fieldPtrArr;1)
 fieldPtrArr{1}:=->[Customers]Observations
 CREATE INDEX([Customers];fieldPtrArr;Keywords Index;"CustObsIdx")

Einen zusammengesetzten Index auf die Felder “City” und “Zipcode” der Tabelle [Customers] erstellen:

 ARRAY POINTER(fieldPtrArr;2)
 fieldPtrArr{1}:=->[Customers]City
 fieldPtrArr{2}:=->[Customers]Zipcode
 CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CityZip")



Siehe auch 

DELETE INDEX
RESUME INDEXES
SET INDEX

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Strukturzugriff
Nummer: 966

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v11 SQL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)