Kurzer Überblick über das Festlegen eines räumlichen Index
Mit räumlichen Indizes können Sie Features beim Anzeigen, Bearbeiten oder Abfragen von Daten schnell lokalisieren. Daher ist ein geeigneter räumlicher Index insbesondere beim Umgang mit großen Datenmengen von entscheidender Bedeutung.
Die Funktionsweise räumlicher Indizes variiert je nach Datenquelle. File- und ArcSDE-Geodatabases in DB2, ArcSDE-Geodatabases in Oracle und SQL Server mit dem binären Geometriespeichertyp sowie ArcSDE-Geodatabases in Oracle mit dem Speichertyp "ST_Geometry" verwenden als räumlichen Index ein System mit bis zu drei Gittern. In Personal-Geodatabases wird nur ein Gitter verwendet. Ein Gitter ist durch seine Größe definiert: die so genannte Gittergröße. Hierbei handelt es sich um die Größe der einzelnen Zellen im Gitter, die in den Einheiten des Koordinatensystems der Feature-Class angegeben ist. In Oracle Spatial, Informix und PostgreSQL werden keine Gittergrößen verwendet, sondern ein R-Baum-Index. Auch in einem räumlichen Index von räumlichen SQL Server-Datentypen werden keine Gitter verwendet.
Verwaltung von Indizes in File- und ArcSDE-Geodatabases
ArcGIS erstellt den räumlichen Index nach dem Abschluss bestimmter Vorgänge in File- und ArcSDE-Geodatabases automatisch neu, um den Index stets auf dem optimalen Stand zu halten. Im Folgenden wird die Verwaltung des räumlichen Index in ArcGIS erläutert:
- Wenn Sie eine leere Feature-Class mit dem Assistenten "Neue Feature-Class" erstellen, wird ein räumlicher Index erstellt. Wenn die Feature-Class ein räumliches Indexgitter verwendet, wird der Index mit der Gittergröße 0,0,0 erstellt, aber leer belassen. Nach dem Laden von Daten mit dem Assistenten "Laden einfacher Objekte" in ArcCatalog oder dem Werkzeug "Anhängen" erstellt ArcGIS den räumlichen Index im letzten Schritt des Ladevorgangs. Dabei werden die geeigneten Gittergrößen für die neu hinzugefügten Features berechnet.
- Wenn Sie Daten aus einer Personal-Geodatabase, einem Shapefile oder Coverage importieren bzw. CAD-Dateien (Computer-Aided Drafting) oder SDC-Daten (Smart Data Compression) importieren, wird für die neue Feature-Class automatisch ein räumlicher Index berechnet.
- Beim Kopieren einer Feature-Class aus einer Personal-Geodatabase in eine File- oder ArcSDE-Geodatabase mit den ArcCatalog-Befehlen "Kopieren" und "Einfügen" wird der räumliche Index automatisch neu erstellt. Der räumliche Index wird außerdem neu erstellt, wenn Sie eine Feature-Class aus einer Oracle Spatial-, PostgreSQL- oder einer Informix-Geodatabase kopieren. Wenn Sie eine Feature-Class aus einer File- oder ArcSDE-Geodatabase mit Gittergrößen (Oracle (binär und ST_Geometry), SQL Server (binär)oder DB2) in eine andere Geodatabase mit Gittergrößen kopieren, wird der Index mit den Quelldaten kopiert und nicht neu berechnet.
- Wenn Sie ein Geoverarbeitungswerkzeug verwenden, mit dem eine Feature-Class erstellt wird, werden die Features in der neuen Feature-Class untersucht. Anschließend wird automatisch ein neuer räumlicher Index berechnet.
- Beim Speichern von Änderungen an einer Feature-Class in einer File-Geodatabase in ArcMap analysiert ArcGIS den räumlichen Index. Wenn die Gittergröße auf 0,0,0 festgelegt ist, wird der Index automatisch mit der für die neu hinzugefügten Features geeigneten Gittergröße neu erstellt. In ArcSDE-Geodatabases geschieht dies nicht.
- Für komprimierte Feature-Classes in File-Geodatabases und nicht komprimierte Feature-Classes werden verschiedene Typen von räumlichen Indizes verwendet. Beim Komprimieren einer Feature-Class in einer File-Geodatabase wird diese automatisch neu indiziert. Dieser Index kann nicht geändert werden. Beim Dekomprimieren der Feature-Class wird automatisch der räumliche Index wiederhergestellt, den die Feature-Class vor dem Komprimieren aufwies.
Gründe für das Aktualisieren des Index in File- und ArcSDE-Geodatabases
Da ArcGIS den räumlichen Index in File- und ArcSDE-Geodatabases verwaltet, müssen Sie den Index nur gelegentlich manuell festlegen oder neu berechnen. Eine Änderung oder Neuberechnung des Index ist nur in den folgenden seltenen Fällen erforderlich:
- Lassen Sie den Index neu berechnen, nachdem Sie eine große Anzahl von Features hinzugefügt haben, die sich in der Größe von denen unterscheiden, die bereits in der Feature-Class enthalten sind. Dies gilt nur für das Hinzufügen von Features in Editiersitzungen. Angenommen, Sie haben eine Editiersitzung begonnen und manuell sehr viele Linien-Features hinzugefügt oder mit dem Objekt-Ladeprogramm geladen. Viele der hinzugefügten Features sind beträchtlich länger oder kürzer als die bereits in der Feature-Class vorhandenen Features. Damit der räumliche Index die neuen Features optimal widerspiegelt, empfiehlt sich eine Aktualisierung. Wenn die Feature-Class ein räumliches Indexgitter verwendet, aktualisieren Sie den Index, nachdem Sie die Bearbeitungen gespeichert haben, indem Sie im Dialogfeld "Eigenschaften: Feature-Class" auf die Registerkarte "Indizes" und dann auf die Schaltfläche "Neu berechnen" klicken.
- Wenn Sie einer Feature-Class in einer File-Geodatabase mit der Gittergröße 0,0,0 Features hinzufügen und die Bearbeitungen speichern, wird der Index automatisch erstellt. Wenn Sie jedoch während derselben Editiersitzung weitere Features hinzufügen, wird der Index nach weiteren Speichervorgängen nicht neu berechnet, weil die Gittergröße nicht mehr gleich 0,0,0 ist. Sobald Sie das Hinzufügen von Features abgeschlossen haben, klicken Sie zum Aktualisieren der Gittergröße im Dialogfeld "Eigenschaften: Feature-Class" auf der Registerkarte "Index" auf die Schaltfläche "Neu berechnen". Allerdings wird der Index durch das manuelle Veranlassen der Neuberechnung des Index kaum oder gar nicht geändert, nachdem Features hinzugefügt wurden, deren Größe denen ähnelt, die bereits in der Feature-Class enthalten sind.
- Wenn Sie einer Feature-Class eine große Anzahl an Features hinzufügen möchten, müssen Sie den Index möglicherweise zuvor löschen. Dies ist erforderlich, wenn beim Hinzufügen von Features eine Fehlermeldung angezeigt wird, dass die Gittergröße des räumlichen Index ungültig ist. Beenden Sie in diesem Fall die Bearbeitung, rufen Sie das Dialogfeld "Eigenschaften: Feature-Class" auf, und löschen Sie den räumlichen Index. Starten Sie die Editiersitzung neu, und fügen Sie die neuen Features hinzu. Sobald Sie das Hinzufügen der Features abgeschlossen haben, führen Sie eine Neuberechnung des neuen Index durch.
In diesem Abschnitt wurde bislang hauptsächlich die von ArcGIS berechnete Standardgittergröße für räumliche Indexgitter behandelt. Diese eignet sich in den meisten Fällen für schnelle räumliche Abfragen. Allerdings kann die Größe je nach den Merkmalen der Daten und dem Zugriff auf die Daten nicht optimal sein. Eine geänderte Gittergröße kann zu schnelleren Abfragen führen. Um eine besser geeignete Gittergröße zu ermitteln, müssen Sie verschiedene Größen ausprobieren und nach jeder Änderung Leistungstests durchführen, um die Auswirkungen zu untersuchen. Möglicherweise können Sie die Leistung aber nicht weiter verbessern, wenn die bestehende Gittergröße bereits optimal ist.
Wenn Sie Gittergrößen manuell eingegeben haben und eine von ArcGIS bereitgestellte Größe wiederherstellen möchten, können Sie jederzeit eine neue Gittergröße berechnen lassen. Klicken Sie im Dialogfeld "Eigenschaften: Feature-Class" auf der Registerkarte "Index" auf die Schaltfläche "Neu berechnen". ArcGIS kann auch über das Geoverarbeitungswerkzeug "Standardmäßige räumliche Indexgitter berechnen" eine geeignete Gittergröße berechnen. Dabei ergibt sich die gleiche Größe wie beim Klicken auf "Neu berechnen".
Wenn Sie einen räumlichen Indextyp von Microsoft SQL Server verwenden, werden keine Gitter verwendet, und es kommt aus diesem Grund auch nicht zu einer Neuberechnung der Gitter.
Räumliche Indizes in Personal-Geodatabases
Beim Erstellen einer Feature-Class in einer Personal-Geodatabase, sei es mit dem Assistenten "Neue Feature-Class", einem Geoverarbeitungswerkzeug oder mit einer anderen Methode, wird die Gittergröße des räumlichen Index von der Software automatisch berechnet und kann nicht geändert werden. Die stets optimal berechnete Gittergröße basiert auf dem Feature-Class-Koordinatensystem.