Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik

CREATE / DROP INDEX


Notizen:

Indizes sind zusätzlich erstellte Strukturen, die einer Tabelle (oder Sicht, wenn das DB-System das unterstützt) zugeordnet sind. Sie werden für ein oder mehrere Felder erstellt, um...
das Identifizieren der Treffermenge im Rahmen von Anfragen zu beschleunigen (vgl. Index eines Buches für schnelles Auffinden von Info ohne das ganze Buch zu lesen)
Das Sortieren von Ausgabedaten zu beschleunigen
Eindeutigkeit durchzusetzen
Allerdings ist das nicht gratis:
Indizes verbrauchen Platz weil die Werte der indizierten Spalten auf zusätzlichen Pages gespeichert werden. Typisch ist ein Wert von ca. 5% der Tabellengröße, aber das kann je nach Größe des indizierten Datentyps und der gesamten Datensatzlänge drastisch schwanken!
Jeder Index verlangsamt das Ändern von Daten, da zusätzliche Pages angefasst werden müssen, wenn Datensätze eingefügt, geändert oder gelöscht werden.
Der Optimizer eines Datenbanksystems hat prinzipiell 2 Möglichkeiten Daten zu suchen:
Table Scan (Datenpagesmit den Nutzdaten werden durchsucht)
Index Scan (Indexpages mit den werden durchsucht)
Der Optimizer wählt den Table scan, wenn...
kein brauchbarer Index verfügbar ist
er erwartet, daß ein großer Prozentsatz an Datensätzen zurückgeliefert wird (z.B. > 20%)
Es hat daher keinen Sinn Felder zu indizieren, die ...
eine kleine Domäne haben (z.B. Geschlecht)...
nur selten in Such- oder Sortieranfragen auftauchen
Indizes sind von Vorteil bzw. ermöglichen es erst, wenn
nach Zeilen mit bestimmtem Werten gesucht wird
nach Zeilen mit Werten eines Bereiches (von .. bis) gesucht wird
Tabellen verknüpft werden (JOIN)
Ausgaben sortiert werden sollen
doppelte Einträgen bei Einfügen oder Update verhindert werden sollen (Eindeutigkeit)