In ArcGIS werden Indizes verwendet, um Daten schnell abzufragen. Mit Attributindizes werden Datensätze gesucht, die einer Attributabfrage entsprechen, und mit räumlichen Indizes werden Features lokalisiert, die einer räumlichen Abfrage entsprechen.
Attributindizes können Verbindungen und andere Attributabfragen für Tabellen, Feature-Classes, Shapefiles oder attributierte Beziehungsklassen beschleunigen. Ein Attributindex ist ein alternativer Pfad, der von ArcGIS verwendet wird, um einen Datensatz aus einer Tabelle abzurufen. Bei den meisten Typen von Attributabfragen kann ein Datensatz schneller mit einem Index gesucht werden, anstatt mit dem ersten Datensatz zu beginnen und dann die gesamte Tabelle zu durchsuchen.
Sobald eine Tabelle, eine Feature-Class, ein Shapefile oder eine attribuierte Beziehungsklasse Daten enthält, können Sie Attributindizes für die Felder erstellen, die Sie regelmäßig abfragen. Es wird empfohlen, Indizes für Spalten mit Einzelwerten oder fast eindeutigen Werten zu erstellen. Mit jedem hinzugefügten Index wird das Bearbeiten der Feature-Class oder der Tabelle etwas verlangsamt. Bei jeder Bearbeitung einer Feature-Class oder Tabelle, die einen Attributindex enthält, aktualisiert ArcGIS oder das Datenbankmanagementsystem (DBMS) den Index. Erstellen Sie möglichst keinen Index für ein Feld, das häufiger bearbeitet als abgefragt wird, oder für Felder, die wenige eindeutige Werte enthalten, wie Yes oder No, da diese Indizes die Performance herabsetzen können.
Sie können Attributindizes im Dialogfeld Eigenschaften in ArcGIS Pro oder mit dem Geoverarbeitungswerkzeug Attributindex hinzufügen erstellen. Nachdem ein Index hinzugefügt wurde, kann er jederzeit gelöscht und erneut hinzugefügt werden.
Attributindizes können für einzelne oder mehrere Felder erstellt werden, sie können eindeutig sein, und für einige Geodatabases können sie in aufsteigender oder absteigender Reihenfolge erstellt werden. Auf dieser Hilfeseite erhalten Sie lediglich eine kurze Einführung in diese Konzepte. Wenn Sie eine Strategie zum Indizieren einer Enterprise-Geodatabase erarbeiten, finden Sie ausführliche Informationen in der Dokumentation zum jeweiligen DBMS.
Erstellen eines Attributindex im Bereich "Katalog"
Attributindizes können für ein oder mehrere Felder in einem Dataset erstellt werden. Klicken Sie hierzu im Bereich Katalog mit der rechten Maustaste auf den Namen der Geodatabase-Feature-Class oder der Tabelle, um das Dialogfeld Eigenschaften zu öffnen.
Hinweis:
Wenn Sie die Attributtabelle in ArcGIS Pro öffnen, ist der Name indizierter Felder mit einem Sternchen (*) versehen.
- Klicken Sie im Bereich Katalog mit der rechten Maustaste auf die Tabelle, die Feature-Class, das Shapefile oder die attribuierte Beziehungsklasse, für das bzw. die Sie einen Index erstellen möchten, und wählen Sie dann Eigenschaften.
- Klicken Sie auf die Registerkarte Indizes.
Im Abschnitt Attributindex werden die vorhandenen Indizes für dieses Dataset angezeigt.
Hinweis:
Wenn Sie eine Tabelle oder Feature-Class in ArcGIS erstellen, fügt ArcGIS dem Objekt-ID-Feld einen einzigartigen Index hinzu. In File-Geodatabases und Mobile-Geodatabases heißt der Index FDO_OBJECTID. In Enterprise-Geodatabases heißt der Index r_#_sde_rowid_uk. Die Geodatabase nutzt den Index, um jedes Feature oder jede Zeile eindeutig zu identifizieren. Der Index kann nicht entfernt werden.
- Klicken Sie auf Hinzufügen, um einen Attributindex hinzuzufügen.
- Geben Sie unter Name den Namen des neuen Index ein.
- Aktivieren Sie optional das Kontrollkästchen Eindeutig, wenn Ihre Feldwerte eindeutig sind. Aktivieren Sie das Kontrollkästchen Aufsteigend, um einen aufsteigenden Index zu erstellen.
Die Einstellungen Eindeutig und Aufsteigend werden in File-Geodatabases nicht verwendet und müssen daher nicht aktiviert werden.
- Klicken Sie in der Liste Verfügbare Felder auf das Feld, für das Sie einen Index erstellen möchten, und klicken Sie auf den Pfeil , um das Feld in die Liste Ausgewählte Felder zu verschieben.
Wiederholen Sie diesen Schritt für jedes zu indizierende Feld, um den Index auf mehrere Felder anzuwenden.
- Wenn Sie mehrere Felder ausgewählt haben, können Sie optional den Pfeil nach oben und nach unten verwenden, um die Reihenfolge der Felder im Index zu ändern.
Im nachstehenden Abschnitt Indizes für eine oder mehrere Spalten finden Sie Informationen zur geeigneten Reihenfolge.
- Klicken Sie auf OK, um den Index zu erstellen.
- Klicken Sie auf OK, um das Dialogfeld Eigenschaften zu schließen.
Erstellen eines Attributindex mit einem Geoverarbeitungswerkzeug
Das Toolset Indizes in der Toolbox "Data Management" enthält zwei Attributindex-Werkzeuge – eines zum Erstellen und eines zum Entfernen eines Attributindex.
Das Werkzeug Attributindex hinzufügen ermöglicht das Hinzufügen eines Index mit einer oder mehreren Spalten zu einer vorhandenen Tabelle, Feature-Class oder attribuierten Beziehungsklasse.
Das Werkzeug Attributindex entfernen ermöglicht das Entfernen eines Index mit einer oder mehreren Spalten aus einer Tabelle, Feature-Class oder attribuierten Beziehungsklasse.
Namen von Attributindizes
Es ist empfehlenswert, den Index so zu benennen, dass aus dem Namen die indizierte Tabelle oder sogar Spalte ersichtlich wird. Wenn jedoch der Name der indizierten Tabelle geändert wird, gibt der Indexname möglicherweise nicht mehr an, welche Tabelle indiziert wird. In einigen Unternehmen ist es üblich, Indizes einen Namen zuzuweisen, der angibt, dass es sich um einen Index handelt, beispielsweise durch Voranstellen oder Anhängen von IDX an den Namen. Ein Index für eine Tabelle mit Adressen kann beispielsweise ADRS_APK_IDX lauten, wobei "ADRS" angibt, dass sich dieser Index auf die Adressentabelle bezieht, "APK" die indizierte Spalte kennzeichnet und "IDX" kenntlich macht, dass es sich um einen Index handelt.
Wie für Tabellennamen gilt Folgendes für Indexnamen in Geodatabases:
- Sie müssen in der Datenbank eindeutig sein.
- Sie müssen mit einem Buchstaben beginnen.
- Sie dürfen keine Leerzeichen enthalten.
- Sie dürfen keine reservierten Wörter enthalten.
Für das Benennen eines Attributindex in einer File-Geodatabase gelten keine Beschränkungen.
In ArcGIS gilt eine Beschränkung von 16 Zeichen für die Länge von Attributindexnamen.
Eindeutige Indizes
Wenn jeder Attributwert in einem Feld eindeutig ist, können Sie den Index als eindeutig erstellen. Dadurch werden Abfragen dieses Attributfelds beschleunigt, da die Datenbank die Suche nach dem Auffinden des ersten entsprechenden Wertes abbrechen kann.
Wenn er für mehrere Spalten definiert ist, können Sie einen eindeutigen Index erstellen, wenn die Kombination der Werte in allen Spalten eindeutig ist.
Hinweis:
Sie können keine Feature-Class bearbeiten, die sich in einem Feature-Dataset mit einer anderen Feature-Class befindet, die über einen eindeutigen Index für ein benutzerdefiniertes Feld verfügt.
Aufsteigende oder absteigende Indizes
Sie können aufsteigende oder absteigende Indizes erstellen. Ein aufsteigender Index wird in aufsteigender Reihenfolge verwaltet. Beispielsweise werden die Werte für die Städtenamen Athens, Berlin, London und Paris in dieser Reihenfolge als aufsteigender Index angezeigt, in einem absteigenden Index jedoch als Paris, London, Berlin und Athens.
In fast keinem Fall spielt die Reihenfolge, in der der Index verwaltet wird, überhaupt eine Rolle in Bezug auf die Abrufgeschwindigkeit, da Indizes bei den meisten Abfragen ebenso effektiv vorwärts wie rückwärts durchlaufen werden.
Indizes für eine oder mehrere Spalten
Indizes können in einer Geodatabase für eine Spalte oder mehrere Spalten erstellt werden. Indizes für mehrere Spalten sind hilfreich, wenn Sie in einer Abfrage häufig zwei oder drei Felder angeben. In diesem Fall kann ein Index für mehrere Spalten schnellere Abfragen als zwei oder drei separate Indizes ermöglichen, die für jeweils ein Feld festgelegt sind.
Die Reihenfolge, in der Felder in einem Index für mehrere Spalten aufgeführt werden, ist wichtig. In einem Index für mehrere Spalten, bei dem Spalte A vor Spalte B aufgeführt wird, wird die Suche zunächst anhand von Spalte A ausgeführt. Darüber hinaus ist ein solcher Index viel nützlicher für Abfragen, bei denen nur Spalte A durchsucht wird, als für Abfragen, bei denen nur Spalte B berücksichtigt wird.
Bei der Entscheidung, ob Sie Indizes für eine oder mehrere Spalten oder eine Kombination aus beidem erstellen, müssen Sie Kompromisse eingehen, wie das folgende Beispiel zeigt.
Wenn Sie gelegentlich nur Spalte A, gelegentlich nur Spalte B und manchmal beide Spalten abfragen, sind folgende Vorgehensweisen möglich:
- Erstellen Sie zwei separate Indizes für Spalte A und Spalte B.
- Erstellen Sie einen Index mit mehreren Spalten für Spalte A und Spalte B. Dieser Index ist typischerweise effizienter für Abfragen, bei denen beide Spalten durchsucht werden. Für Abfragen, bei denen lediglich Spalte A durchsucht wird, ist dieser Index langsamer als ein Index, der nur für Spalte A erstellt wurde. Dieser Index wäre nicht sehr nützlich für Abfragen, bei denen nur Spalte B durchsucht wird. Um dies zu kompensieren, könnten Sie einen zusätzlichen Index für Spalte B erstellen.
- Erstellen Sie alle drei Indizes: einen Index für Spalte A, einen für Spalte B und einen Index für mehrere Spalten für Spalte A und Spalte B. Dies bietet sich an, wenn alle drei Abfragetypen häufig sind und die Tabelle viel häufiger abgefragt wird als aktualisiert.