Wenn Sie häufig eine Tabelle in Access durchsuchen oder deren Datensätze nach einem bestimmten Feld sortieren, können Sie diese Vorgänge beschleunigen, indem Sie einen Index für das Feld erstellen. Access verwendet Indizes in einer Tabelle, während Sie einen Index in einem Buch verwenden: um Daten zu finden, sucht Access die Position der Daten im Index. In einigen Fällen, z. B. für einen Primärschlüssel, erstellt Access automatisch einen Index für Sie. Zu anderen Zeiten können Sie selbst einen Index erstellen.
Dieser Artikel bietet eine Einführung in Indizes und behandelt folgende Fragen: Wie entscheide ich, welche Felder indiziert werden sollen, und wie werden Indizes erstellt, gelöscht oder geändert? Es wird auch erläutert, unter welchen Bedingungen Access Indizes automatisch erstellt.
Inhalt dieses Artikels
Hinweis: Mit den in diesem Artikel beschriebenen Methoden können Sie keinen Index für eine Tabelle in einer Webdatenbank erstellen. Die Leistung einer Webdatenbank ist von der Leistung mehrerer Faktoren wie des SharePoint-Servers abhängig, auf dem die Webdatenbank gehostet wird.
Was ist ein Index?
Mit Indizes können Sie dazu beitragen, dass Access Datensätze schneller findet und sortiert. Ein Index speichert den Speicherort von Datensätzen ausgehend von dem Feld oder den Feldern, das oder die Sie indiziert haben. Wenn Access den Speicherort aus dem Index erhält, können die Daten dann durch den direkten Wechsel an den richtigen Speicherort abgerufen werden. Auf diese Weise kann die Verwendung eines Index zur Datensuche erheblich schneller als das Durchsuchen aller Datensätze sein.
Welche Felder sollten indiziert werden?
Sie können Indizes erstellen, die auf einem einzelnen Feld oder auf mehreren Feldern basieren. Wahrscheinlich möchten Sie Felder indizieren, die Sie häufig durchsuchen, Felder, die Sie sortieren, und Felder, die Sie mit Feldern in anderen Tabellen in mehreren Tabellenabfragen verknüpfen. Indizes können Such- und Abfragevorgänge beschleunigen, aber sie können die Leistung beeinträchtigen, wenn Sie Daten hinzufügen oder aktualisieren. Wenn Sie Daten in eine Tabelle eingeben, die mindestens ein indiziertes Feld enthält, muss Access die Indizes jedes Mal aktualisieren, wenn ein Datensatz hinzugefügt oder geändert wird. Das Hinzufügen von Datensätzen mithilfe einer Anfügeabfrage oder durch Anfügen importierter Datensätze ist wahrscheinlich auch langsamer, wenn die Zieltabelle Indizes enthält.
Hinweis: Der Primärschlüssel einer Tabelle wird automatisch indiziert.
Ein Feld, dessen Datentyp ein OLE-Objekt, "Berechnet" oder "Anlage" ist, kann nicht indiziert werden. Bei anderen Feldern sollten Sie eine Indizierung in Erwägung ziehen, wenn alle folgenden Bedingungen zutreffen:
-
Der Datentyp des Felds ist Short Text, Long Text, Number, Date/Time, AutoNumber, Currency, Yes/No oder Hyperlink.
-
Sie rechnen damit, dass nach den in dem Feld gespeicherten Werten künftig gesucht wird.
-
Sie rechnen damit, dass die Werte in dem betreffenden Feld sortiert werden.
-
Sie rechnen damit, dass in dem betreffenden Feld viele verschiedene Werte gespeichert werden. Wenn viele der Werte in dem Feld identisch sind, können durch einen Index die Abfragen nicht wesentlich schneller werden.
Aus mehreren Feldern bestehende Indizes
Wenn Sie annehmen, dass Sie häufig nach mindestens zwei Feldern gleichzeitig suchen oder sortieren, können Sie einen Index für diese Kombination von Feldern erstellen. Wenn Sie z. B. häufig Kriterien für die Felder "Anbieter" und "Produktname" in derselben Abfrage festlegen, ist es sinnvoll, einen aus mehreren Feldern bestehenden Index (zusammengesetzten Index) für beide Felder zu erstellen.
Beim Sortieren einer Tabelle nach einem zusammengesetzten Index sortiert Access zuerst nach dem ersten für diesen Index definierten Feld. Beim Erstellen eines zusammengesetzten Indexes legen Sie somit die Reihenfolge der Felder fest. Wenn Datensätze mit doppelten Werten im ersten Feld vorhanden sind, sortiert Access als Nächstes nach dem zweiten Feld, das für den Index definiert wurde, usw.
Ein zusammengesetzter Index kann bis zu 10 Felder enthalten.
Erstellen eines Indexes
Wenn Sie einen Index erstellen möchten, müssen Sie zuerst entscheiden, ob ein aus einem Feld bestehender (einfacher) Index oder ein zusammengesetzter Index erstellt werden soll. Einen Index anhand eines einzelnen Felds erstellen Sie, indem Sie die Eigenschaft Indiziert festlegten. In der folgenden Tabelle sind die möglichen Einstellungen für die Eigenschaft Indiziert aufgelistet.
Einstellung der Eigenschaft "Indiziert" |
Bedeutung |
---|---|
Nein |
Keinen Index für dieses Feld erstellen (oder vorhandenen Index löschen) |
Ja (Duplikate möglich) |
Einen Index für dieses Feld erstellen |
Ja (Ohne Duplikate) |
Einen eindeutigen Index für dieses Feld erstellen |
Wenn Sie einen eindeutigen Index erstellen, lässt Access die Eingabe eines neuen Werts in das Feld nicht zu, wenn dieser Wert bereits im selben Feld in einem anderen Datensatz vorhanden ist. Access erstellt automatisch einen eindeutigen Index für Primärschlüssel, aber Sie können auch doppelte Werte in anderen Feldern verbieten. Sie können z. B. einen eindeutigen Index für ein Feld erstellen, in dem Seriennummern gespeichert sind, sodass keine zwei Produkte dieselbe Seriennummer haben.
Erstellen eines einfachen Indexes
-
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Namen der Tabelle, in der der Index erstellt werden soll, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.
-
Klicken Sie auf Feldname für das Feld, das Sie indizieren möchten.
-
Klicken Sie unter Feldeigenschaften auf die Registerkarte Allgemein.
-
Klicken Sie in der Eigenschaft Indiziert auf Ja (Duplikate möglich), wenn Sie Duplikate zulassen möchten, oder auf Ja (Ohne Duplikate), um einen eindeutigen Index zu erstellen.
-
Klicken Sie zum Speichern der Änderungen auf der Symbolleiste für den Schnellzugriff auf Speichern, oder drücken Sie STRG+S.
Erstellen eines zusammengesetzten Indexes
Wenn Sie einen zusammengesetzten Index für eine Tabelle erstellen möchten, nehmen Sie für jedes Feld des Indexes eine Zeile auf und geben den Indexnamen nur in der ersten Zeile an. Access behandelt alle Zeilen als Bestandteil desselben Indexes, bis es auf eine Zeile trifft, die einen anderen Indexnamen enthält. Wenn Sie eine Zeile einfügen möchten, klicken Sie mit der rechten Maustaste auf die Position, an der eine Zeile eingefügt werden soll, und klicken Sie danach im Kontextmenü auf Zeilen einfügen.
-
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Namen der Tabelle, in der der Index erstellt werden soll, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Indizes.
Das Fenster "Indizes" wird angezeigt. Ändern Sie die Größe des Fensters, damit einige leere Zeilen und die Indexeigenschaften angezeigt werden.
-
Geben Sie in der ersten leeren Zeile in der Spalte Indexname einen Namen für den Index ein. Sie können den Index nach einem der Indexfelder benennen oder einen anderen Namen verwenden.
-
Klicken Sie in der Spalte Feldname auf den Pfeil, und klicken Sie dann auf das erste Feld, das Sie für den Index verwenden möchten.
-
Lassen Sie in der nächsten Zeile die Spalte Indexname leer, und klicken Sie dann in der Spalte Feldname auf das zweite Feld für den Index. Wiederholen Sie diesen Schritt, bis Sie alle Felder auswählen, die Sie in den Index aufnehmen möchten.
-
Zum Ändern der Sortierreihenfolge für die Feldwerte klicken Sie in der Spalte Sortierreihenfolge des Fensters "Indizes" auf Aufsteigend oder Absteigend. Die Standardsuchreihenfolge ist "Aufsteigend".
-
Im Fenster Indizes legen Sie unter Indexeigenschaften die Indexeigenschaften für die Zeile in der Spalte Indexname fest, die den Namen des Indexes enthält. Legen Sie die Eigenschaften entsprechend der folgenden Tabelle fest.
Bezeichnung
Wert
Primärschlüssel
Wenn Ja, ist der Index der Primärschlüssel.
Eindeutig
Wenn Ja, muss jeder Wert im Index eindeutig sein.
Nullwerte ignorieren
Wenn Ja, werden Datensätze mit einem Nullwert in den indizierten Feldern aus dem Index ausgeschlossen.
-
Klicken Sie zum Speichern der Änderungen auf der Symbolleiste für den Schnellzugriff auf Speichern, oder drücken Sie STRG+S.
-
Schließen Sie das Indizes-Fenster.
Löschen eines Indexes
Wenn Sie feststellen, dass ein Index überflüssig geworden ist oder die Systemleistung zu stark beeinträchtigt, können Sie ihn löschen. Beim Löschen eines Indexes wird nur der Index entfernt und nicht das Feld oder die Felder, auf denen der Index basierte.
-
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Namen der Tabelle, in der der Index gelöscht werden soll, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Indizes.
Das Fenster "Indizes" wird angezeigt. Ändern Sie die Größe des Fensters, damit einige leere Zeilen und die Indexeigenschaften angezeigt werden.
-
Markieren Sie im Fenster "Indizes" die Zeile(n), die den zu löschenden Index enthalten, und drücken Sie dann ENTF.
-
Klicken Sie zum Speichern der Änderungen auf der Symbolleiste für den Schnellzugriff auf Speichern, oder drücken Sie STRG+S.
-
Schließen Sie das Fenster Indizes.
Anzeigen und Bearbeiten von Indizes
Es kann erforderlich sein, die Indizes einer Tabelle anzuzeigen, um deren Einfluss auf die Systemleistung abzuschätzen oder um sicherzustellen, dass bestimmte Felder indiziert sind.
-
Klicken Sie im Navigationsbereich mit der rechten Maustaste auf den Namen der Tabelle, in der der Index bearbeitet werden soll, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Indizes.
Das Fenster "Indizes" wird angezeigt. Ändern Sie die Größe des Fensters, damit einige leere Zeilen und die Indexeigenschaften angezeigt werden.
-
Zeigen Sie die Indizes und Indexeigenschaften an, und bearbeiten Sie sie wunschgemäß.
-
Klicken Sie zum Speichern der Änderungen auf der Symbolleiste für den Schnellzugriff auf Speichern, oder drücken Sie STRG+S.
-
Schließen Sie das Fenster Indizes.
Automatische Indexerstellung
In einigen Fällen erstellt Access automatisch die Indizes für Sie. Beispielsweise wird für alle Felder, die Sie als Primärschlüssel für eine Tabelle festlegen, automatisch ein Index erstellt.
Die Option AutoIndex bei Importieren/Erstellen im Dialogfeld Access-Optionen ist eine weitere Quelle für die automatische Indexerstellung. Access indiziert automatisch alle Felder mit Namen, die mit den Zeichen beginnen oder enden, die im Feld AutoIndex bei Importieren/Erstellen eingegeben wurden, z. B. ID, Schlüssel, Code oder Zahl. Führen Sie folgende Aktionen aus, wenn Sie die aktuelle Einstellung anzeigen oder ändern möchten:
-
Klicken Sie auf Datei und dann auf Access-Optionen.
-
Klicken Sie auf Objekt-Designer , und fügen Sie dann unter Tabellenentwurf werte im Feld AutoIndex beim Importieren/Erstellen hinzu, bearbeiten oder entfernen. Verwenden Sie ein Semikolon (;), um Werte zu trennen.
Hinweis: Wenn ein Feldname mit einem in diesem Feld aufgelisteten Wert beginnt oder endet, wird das Feld automatisch indiziert.
-
Klicken Sie auf OK.
Da jeder zusätzliche Index für Access eine zusätzliche Belastung bedeutet, sinkt die Systemleistung, wenn Daten hinzugefügt oder aktualisiert werden. Das könnte für Sie ein Grund sein, die Werte im Feld AutoIndex bei Importieren/Erstellen zu ändern oder die Anzahl der Werte zu verringern, damit die Anzahl erstellter Indizes möglichst gering gehalten wird.