Tabellen [basics]: Indizes in der Praxis

Indizes sind ein wichtiges Werkzeug, um die Performance Deiner Access-Datenbank zu verbessern. Aber nicht jeder Index ist sinnvoll, und zu viele Indizes können sogar bremsen. In diesem Artikel schauen wir uns aus praktischer Sicht an, welche Arten von Indizes es in Access gibt, wo Du sie unbedingt einsetzen solltest und wo Du besser darauf verzichtest. Dabei bauen wir auf den Grundlagen des Artikels Tabellen [basics]: Mit Indizes arbeiten (www.access-basics.de/570) auf und vertiefen das Thema mit konkreten Empfehlungen für die Praxis.

Beispieldatenbank

Die Beispiele dieses Artikels findest Du in der Datenbank TabellenBasics_IndizesPraxis.accdb.

Warum Indizes?

Bevor wir in die Details einsteigen, wollen wir kurz rekapitulieren, warum Indizes überhaupt existieren. Wenn Access nach einem bestimmten Wert in einer Tabelle sucht, muss es ohne Index jeden einzelnen Datensatz durchgehen und prüfen, ob der gesuchte Wert enthalten ist. Das ist bei einer Tabelle mit 100 Datensätzen kein Problem, aber bei 100.000 oder mehr Datensätzen kann das spürbar langsam werden.

Ein Index funktioniert ähnlich wie das Stichwortverzeichnis eines Buches: Statt das gesamte Buch zu durchblättern, schlägst Du im Verzeichnis nach und findest sofort die richtige Seite. Access legt im Hintergrund eine sortierte Datenstruktur an, über die es den gesuchten Wert wesentlich schneller finden kann.

Gleichzeitig hat jeder Index auch seinen Preis: Beim Hinzufügen, Ändern oder Löschen von Datensätzen muss Access den Index aktualisieren. Außerdem belegt jeder Index zusätzlichen Speicherplatz in der Datenbankdatei. Deshalb gilt die Faustregel: So viele Indizes wie nötig, so wenige wie möglich.

Die verschiedenen Indextypen im Überblick

Access kennt verschiedene Arten von Indizes, die sich in ihrer Funktion und ihrem Einsatzzweck unterscheiden. Schauen wir uns diese im Detail an.

Der Primärindex

Der Primärindex, auch Primärschlüssel genannt, ist der wichtigste Index einer Tabelle. Er identifiziert jeden Datensatz eindeutig und ist daher immer ein eindeutiger Index. Pro Tabelle kann es nur genau einen Primärindex geben.

In der Praxis legst Du den Primärindex fast immer auf ein Feld vom Typ Autowert an. Dieses Feld erhält beim Anlegen eines neuen Datensatzes automatisch einen eindeutigen Wert, sodass Du Dich nicht selbst darum kümmern musst.

Um einen Primärschlüssel anzulegen, öffnest Du die Tabelle in der Entwurfsansicht, markierst das gewünschte Feld und klickst im Ribbon auf Tabellenentwurf|Tools|Primärschlüssel. Alternativ findest Du den Befehl auch im Kontextmenü des Feldes.

Empfehlung: Jede Tabelle sollte einen Primärschlüssel haben. Ohne Primärschlüssel kannst Du keine Beziehungen mit referenzieller Integrität zu anderen Tabellen herstellen, und Access kann die Datensätze nicht eindeutig identifizieren. Wenn Du beim Schließen einer Tabelle ohne Primärschlüssel gefragt wirst, ob Access einen anlegen soll, solltest Du das in der Regel bestätigen. Warum Beziehungen mit referenzieller Integrität wichtig sind, erfährst Du im Artikel Tabellen [basics]: Referenzielle Integrität nachrüsten (www.access-basics.de/656).

Einfacher Sekundärindex (Duplikate möglich)

Ein einfacher Sekundärindex beschleunigt die Suche und Sortierung nach den Werten eines Feldes, erlaubt aber im Gegensatz zum Primärschlüssel doppelte Werte. Das ist der häufigste Indextyp, den Du neben dem Primärschlüssel verwenden wirst.

Du legst ihn an, indem Du im Tabellenentwurf die Eigenschaft Indiziert des gewünschten Feldes auf den Wert Ja (Duplikate möglich) einstellst.

Typische Kandidaten für einen solchen Index sind Felder, nach denen Du häufig suchst oder sortierst. Beispiele sind das Feld Nachname in einer Kundentabelle, das Feld PLZ für regionale Auswertungen oder ein Datumsfeld wie Bestelldatum, nach dem Du regelmäßig filterst.

Empfehlung: Setze diesen Index auf Felder, die Du in Abfragen als Kriterium oder als Sortierfeld verwendest. Wenn Du eine Abfrage hast, die alle Bestellungen eines bestimmten Zeitraums ermittelt, profitiert das Feld Bestelldatum von einem Index. Felder, die Du nur selten zum Filtern oder Sortieren verwendest, benötigen keinen Index.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar