Anfang des Inhaltsbereichs

Hintergrunddokumentation Indizes  Dokument im Navigationsbaum lokalisieren

Über einen Index kann das Durchsuchen einer Tabelle nach Datensätzen, die bestimmten Suchkriterien genügen, beschleunigt werden.

Ein Index kann als eine auf bestimmte Felder reduzierte Kopie einer Datenbanktabelle aufgefaßt werden. Diese Kopie liegt stets in sortierter Form vor. Die Sortierung ermöglicht einen schnellen Zugriff auf die Datensätze der Tabelle, z.B. über binäre Suche. Damit auch die nicht im Index enthaltenen Felder gelesen werden können, ist in einem Index noch ein Zeiger auf den zugehörigen Satz der eigentlichen Tabelle enthalten.

Man unterscheidet zwischen dem Primärindex und Sekundärindizes einer Tabelle. Der Primärindex besteht aus den Schlüsselfeldern der Tabelle sowie einem Zeiger auf die Nichtschlüsselfelder der Tabelle. Der Primärindex wird beim Anlegen der Tabelle auf der Datenbank automatisch mitangelegt.

Beispiel

Die Tabelle SCOUNTER im Flugmodell enthält die Zuordnung der Verkaufsschalter der Fluggesellschaften zu Flughäfen. Der Primärindex zu dieser Tabelle besteht also aus den Schlüsselfeldern der Tabelle und einem Zeiger auf die Originaldatensätze.

Diese Grafik wird im zugehörigen Text erklärt

Im ABAP Dictionary können weitere Indizes zu einer Tabelle angelegt werden, die man als Sekundärindizes bezeichnet. Dies ist notwendig, wenn auf die Tabelle häufig auf eine Art zugegriffen wird, bei der die Sortierung des Primärindex nicht für den Zugriff ausgenutzt werden kann. Verschiedene Indizes zur gleichen Tabelle werden über eine dreistellige Index-Kennung unterschieden.

Beispiel

Für Flugbuchungen werden oft alle Verkaufsschalter von Fluggesellschaften gesucht, die sich an einem bestimmten Flughafen befinden. Bei einem solchen Zugriff wird also über die Kennung des Flughafens nach Verkaufsschaltern gesucht. Die Sortierung des Primärindex ist zur Beschleunigung dieses Zugriffs nutzlos. Da die Tabelle SCOUNTER sehr viele Einträge besitzt, muß zur Unterstützung des Zugriffs über die Flughafenkennung ein Sekundärindex über das Feld AIRPORT (Kennung des Flughafens) angelegt werden.

Diese Grafik wird im zugehörigen Text erklärt

Ob ein Index für einen konkreten Zugriff auf eine Tabelle verwendet wird, wird vom Optimizer des Datenbanksystems entschieden (siehe Wie prüft man, ob ein Index verwendet wird?). Damit ist es möglich, daß ein Index nur für bestimmte Datenbanksysteme einen Performancegewinn bringt. Deshalb kann bei der Indexdefinition im ABAP Dictionary angeben werden, auf welchen Datenbanksystemen ein Index angelegt werden soll (siehe Sekundärindizes anlegen).

Alle im ABAP Dictionary vorhandenen Indizes zu einer Tabelle werden beim Anlegen der Tabelle auf der Datenbank standardmäßig mitangelegt, falls dies bei der Indexdefinition für dieses Datenbanksystem nicht ausgeschlossen wurde.

Falls die Indexfelder Schlüsselfunktion besitzen, d.h. jeden Satz der Tabelle bereits eindeutig identifizieren, kann ein Index als Unique-Index gekennzeichnet werden.

Siehe auch:

Was sollten Sie beim Anlegen von Sekundärindizes beachten?