>> Inhaltsverzeichnis >> Artikel

Element Index

  ELEMENT index (description?, column*)
  ATTRIBUTE
       name           string
       unique         bool
       clustered      bool
       title          string
  
Attribute
Attribut Typ Pflicht Default Beschreibung
name string - n/a Ein eindeutiger Name welcher diesen index identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein.
unique bool - no Ein Unique-Index impliziert stets einen Unique-Constraint. Ein Unique-Constraint bedeutet, dass die Spalte keinen Wert mehrfach enthalten darf.
clustered bool - no Besagt, dass alles Spalten im Tablespace in der Reihenfolge dieses Index gespeichert werden sollen. Das ist eine Einstellung zur Verbesserung der Performance.
title string - n/a Title ist ein Beschriftungstext, der in der Nutzeroberfläche angezeigt werden sollte wenn das Objekt anzeigt wird.
Beschreibung

Indexes werden verwendet, um die Leistung von Abfragen zu verbessern. Ein Index ist eine sortierte Liste von Spaltenwerten. Das Durchsuchen eines Index ist gewöhnlich schneller als die Suche über eine ganze Tabelle. Jedoch: das Erzeugen und Verwalten eines Indexes erzeugt einen Overhead an Rechenzeit, Insert- und Update-Anweisungen werden daher langsamer wenn Indexe verwendet werden.

Implementierung

Beachten Sie: es ist nicht erforderlich einen Unique-Constraint auf einen Primärschlüssel explizit anzulegen. Primärschlüssel haben bereits implizit einen Unique-Constraint.

Wichtig! Selbst wenn ein Unique-Index besteht, muss die Implementierung nicht unbedingt melden, dass die Spalte einen Unique-Constraint besitzt. Es wird empfohlen Unique-Indexes nicht zu verwenden, wenn das Gleiche mit einem Constraint ausgedrückt werden kann. Beachten Sie, dass ein Unique-Constraint nicht über mehrere Spalten definiert werden kann. In diesem Fall sollten Sie einen Unique-Index verwenden.

Clustered Indexes betreffen ausschließlich MSSQL. Ein clustered Index bedeutet, dass der DBS versuchen soll, Werte die im Index nah beieinander liegen auch im Tablespace nah beieinander abzulegen, damit diese beim Lesen der Tabelle in den gleichen Speicherblock passen.
In den meisten Fällen würde erwartet, dass ein clustered Index auf dem Primärschlüssel erzeugt wird (dies ist ohnehin der Standardfall), oder auf einer stattdessen zur Sortierung verwendeten Spalte. Pro Tabelle darf nur ein clustered Index angelegt werden. Wenn das Attribut clustered eines Index auf "yes" gesetzt wird, dann muss die Implementierung prüfen, ob in der Tabelle bereits ein anderer clustered Index definiert ist. Falls dies der Fall ist, so muss das Attribut clustered dieses Index auf "no" gesetzt werden. Die Implementierung kann einen Fehler melden, wenn zwei clustered Indexes in einer Tabelle gefunden werden.

Autor: Thomas Meyer, www.yanaframework.net