Indizes (Visual Database Tools)
Aktualisiert: November 2007
Mit einem Index können Sie den Zugriff auf Daten in einer Datenbanktabelle beschleunigen. Ein Index ist eine Struktur, mit der die Werte in einer Spalte oder mehreren Spalten einer Datenbanktabelle geordnet werden, z. B. die Werte in der Nachnamenspalte (lname) der Tabelle employee. Wenn Sie einen bestimmten Mitarbeiter anhand seines Nachnamens suchen, können die Informationen mithilfe des Indexes schneller ermittelt werden, da nicht sämtliche Zeilen der Tabelle durchsucht werden müssen.
Der Index stellt Zeiger auf Datenwerte bereit, die in bestimmten Spalten der Tabelle gespeichert sind, und die Zeiger werden dann in der von Ihnen angegebenen Sortierreihenfolge geordnet. Die Verwendung des Indexes in der Datenbank ist vergleichbar mit der Verwendung eines Indexes in einem Buch: Der Index wird nach einem bestimmten Wert durchsucht, und am Zeiger wird die Zeile abgelesen, in der sich der Wert befindet.
Sie können in Datenbankdiagrammen den Indextyp für eine ausgewählte Tabelle über Dialogfeld "Indizes/Schlüssel", Dialogfeld "XML-Indizes" oder Dialogfeld "Volltextindex" erstellen, bearbeiten oder löschen. Ein Index wird in der Datenbank gespeichert, sobald Sie die mit dem Index verknüpfte Tabelle oder das Diagramm speichern, das diese Tabelle enthält. Weitere Informationen finden Sie unter Arbeiten mit Indizes.
Hinweis: |
---|
Nicht alle Datenbanken unterstützen Indizes auf dieselbe Weise. Weitere Informationen finden Sie in der Datenbankdokumentation. |
In der Regel sollten Sie nur dann einen Index für eine Tabelle erstellen, wenn die Daten in den indizierten Spalten häufig abgefragt werden. Indizes benötigen Speicherplatz auf dem Datenträger und können das Hinzufügen, Löschen und Aktualisieren von Zeilen verlangsamen. In den meisten Situationen werden diese Nachteile von Indizes durch die erhöhte Geschwindigkeit bei Datenabfragen ausgeglichen. Wenn die Daten durch die Anwendung aber sehr häufig aktualisiert werden oder der Speicherplatz beschränkt ist, kann es ratsam sein, die Anzahl der Indizes zu beschränken.
Bevor Sie einen Index erstellen, müssen Sie festlegen, welche Spalten verwendet und welcher Indextyp erstellt werden sollen.
Indexspalten
Sie können Indizes auf der Grundlage einer Spalte oder mehrerer Spalten einer Datenbanktabelle erstellen. Mit Indizes für mehrere Spalten können Zeilen unterschieden werden, die in einer Spalte denselben Wert enthalten.
Indizes bieten auch Vorteile, wenn Sie häufig mehrere Spalten gleichzeitig durchsuchen oder sortieren. Wenn Sie z. B. in einer Abfrage häufig Kriterien für die Spalte mit den Nachnamen und die Spalte mit den Vornamen festlegen, ist es sinnvoll, für diese beiden Spalten einen Index für mehrere Spalten zu erstellen.
So bestimmen Sie, ob die Verwendung eines Indexes vorteilhaft ist:
Überprüfen Sie die WHERE- und JOIN-Klauseln für die Abfragen. Jede Spalte, die in einer der Klauseln vorkommt, kann als Index in Betracht gezogen werden.
Probieren Sie den neuen Index aus, und untersuchen Sie, wie er sich auf die Leistung von Abfragen auswirkt.
Ziehen Sie die Anzahl der bereits in der Tabelle erstellten Indizes in Betracht. Es ist nicht empfehlenswert, in einer einzelnen Tabelle eine große Anzahl von Indizes zu erstellen.
Überprüfen Sie die Definitionen der bereits in der Tabelle erstellten Indizes. Es ist empfehlenswert, keine überlappenden Indizes zu verwenden, in denen gemeinsame Spalten enthalten sind.
Überprüfen Sie die Anzahl der eindeutigen Datenwerte in einer Spalte, und vergleichen Sie diese Anzahl mit der Anzahl der Zeilen in der Tabelle. Das Ergebnis ist ein Indikator für die Selektivität dieser Spalte und erleichtert Ihnen die Entscheidung, ob eine Spalte als Index infrage kommt und welcher Indextyp ggf. zu verwenden ist.
Indextypen
Je nach Funktionalität der verwendeten Datenbank können Sie im Datenbank-Designer drei Arten von Indizes erstellen: eindeutige Indizes, Primärschlüsselindizes und gruppierte Indizes. Ausführliche Informationen über die von der Datenbank unterstützten Funktionen zum Indizieren finden Sie in der Datenbankdokumentation.
Tipp: |
---|
Bereits ein eindeutiger Index bietet Unterstützung bei der Suche von Informationen. Leistungsfähiger sind aber eine Primärschlüssel- oder eine Unique-Einschränkung. Weitere Informationen zu diesen Einschränkungen finden Sie unter Arbeiten mit Einschränkungen. |
Eindeutiger Index
Bei einem eindeutigen Index dürfen die Indexwerte in zwei beliebigen Zeilen nicht übereinstimmen.
In den meisten Datenbanken kann eine Tabelle nicht mit einem neu erstellten eindeutigen Index gespeichert werden, wenn Schlüsselwerte in den vorhandenen Daten mehrfach vorliegen. Es kann sogar unmöglich sein, in der Datenbank neue Daten hinzuzufügen, die in der Tabelle zu Duplikaten von Schlüsselwerten führen. Wenn Sie z. B. in der Tabelle employee einen eindeutigen Index für den Nachnamen des Mitarbeiters (lname) erstellen, können zwei Mitarbeiter nicht denselben Nachnamen haben.
Weitere Informationen zu eindeutigen Indizes finden Sie unter Gewusst wie: Erstellen von eindeutigen Indizes.
Primärschlüsselindex
Eine Datenbanktabelle enthält häufig eine Spalte oder Spaltenkombination, durch deren Wert jede Zeile der Tabelle eindeutig gekennzeichnet ist. Diese Spalte wird als der Primärschlüssel der Tabelle bezeichnet.
Wenn Sie für eine Tabelle in einem Datenbankdiagramm einen Primärschlüssel definieren, wird automatisch ein Primärschlüsselindex erstellt, bei dem es sich um einen bestimmten Typ eines eindeutigen Indexes handelt. Bei diesem Index muss jeder Wert im Primärschlüssel eindeutig sein. Wenn der Primärschlüsselindex in Abfragen verwendet wird, ermöglicht der Index außerdem den schnellen Zugriff auf die Daten. Weitere Informationen zu Primärschlüsseln finden Sie unter Arbeiten mit Schlüsseln.
Gruppierter Index
In einem gruppierten Index stimmen die physikalische Reihenfolge der Zeilen in der Tabelle und die logische (indizierte) Reihenfolge der Schlüsselwerte im Index überein. Eine Tabelle kann nur einen gruppierten Index enthalten.
Wenn ein Index nicht gruppiert ist, stimmen die physikalische Reihenfolge der Zeilen in der Tabelle und die logische Reihenfolge der Schlüsselwerte nicht überein. Mit einem gruppierten Index kann i. d. R. schneller auf Daten zugegriffen werden als mit einem nicht gruppierten.
Weitere Informationen zur Verwendung von gruppierten Indizes finden Sie unter Gewusst wie: Erstellen von gruppierten Indizes.
Volltextindex
Erstellen Sie einen Volltextindex, wenn Sie Volltextsuchen über die textbasierten Spalten der Datenbanktabellen ausführen möchten. Da ein Volltextindex auf einem regulären Index basiert, müssen Sie zuerst einen regulären Index erstellen. Der reguläre Index muss auf einer einzelnen Spalte basieren, die nicht NULL ist. Eine Spalte mit kleinen Werten ist hierfür besser geeignet als eine mit großen Werten. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Indizes.
Hinweis: |
---|
Bevor Sie einen Volltextindex erstellen können, müssen Sie unter Verwendung eines externen Tools, z. B. SQL Server Management Studio oder Enterprise Manager, einen Katalog erstellen. |
Hinweis: |
---|
Eine Volltextindex-Funktionalität ist in Microsoft SQL Server Express 2005 nicht enthalten. |
XML-Index
Verwenden Sie das Dialogfeld XML-Indizes, um Indizes für Spalten vom Datentyp XML zu erstellen, denn diese können nicht über das Dialogfeld Index/Schlüssel indiziert werden. Eine XML-Spalte kann mehrere XML-Indizes besitzen. Dabei bildet dann aber der zuerst erstellte sog. primäre Index die Grundlage für alle weiteren. Wenn Sie den primären XML-Index löschen, werden auch die anderen Indizes gelöscht. Weitere Informationen zu XML-Indizes finden Sie unter Gewusst wie: Erstellen von XML-Indizes.
Siehe auch
Referenz
Dialogfeld "Indizes/Schlüssel"
Dialogfeld "Fremdschlüsselbeziehungen"