Ich hatte vor kurzem mit einem großen Datensatz (ca. 4 Millionen Linienobjekte) zu tun, der sich minutenlang im ArcGIS 10.2.2 aufgebaut hat. Die Daten befanden sich in einer ArcSDE in Oracle. Merkwürdig war, dass dieser aus einer anderen DB importiert wurde in der er sehr performant lief. Die erste Vermutung ging in Richtung des DB-Servers – allerdings waren andere Daten nicht von Performanceproblemen betroffen. Nach einigen Recherchen habe ich festgestellt, dass ArcGIS beim Kopieren der Daten keinen neuen räumlichen Index gerechnet hatte, was bei anderen Datensätzen offensichtlich automatisch passierte.
Der räumliche Index ist ein mehrdimensionales Gitter, welches über den Datensatz gelegt wird und über das ArcGIS die Daten abruft. Man könnte es sich als eine Art gecachtes Inhaltsverzeichnis vorstellen, ähnlich dem Gitternetz auf einer Straßenkarte. Dieser Index ist vor allem bei großen Datensätzen von entscheidender Bedeutung, da sonst die Geschwindigkeit des Kartenaufbaus deutlich darunter leidet.
Um einen räumlichen Index zu erstellen, klickt man im ArcCatalog mit der rechten Maustaste auf die FeatureClass > Eigenschaften und wählt den Reiter Indizes aus. Folgendes Fenster sollte zu sehen sein:In diesem Fall existiert bereits ein Index mit dem Namen A2750_IX1. Sollte hier keiner vorhanden sein, kann mit einem Klick auf Erstellen und anschließend auf Übernehmen ein neuer gerechnet werden. Dies kann einige Minuten in Anspruch nehmen, je nach Größe der Daten. Der Klick auf Übernehmen scheint mir an dieser Stelle sehr entscheidend zu sein, da erst dann der Index auch berechnet wird.
Nachdem bei meinen Daten wieder ein Index vorhanden war, wurden diese in ArcMap innerhalb weniger Sekunden dargestellt.
Der Index ist sicher kein Allheilmittel für alle Performanceprobleme, allerdings ein guter Ansatz um die Ursache einzugrenzen.
Weiterführende Informationen:
Räumliche Indizes in Geodatenbanken
Erklärung zum Indexgitter