Räumliche Indizes und "ST_Geometry"

Räumliche Indizes, die mit "ST_Geometry" verwendet werden, werden abhängig vom DBMS unterschiedlich implementiert. "ST_Geometry" in Oracle und DB2 verwendet ein räumliches Indexgitter. Das Modul "IBM Informix Spatial DataBlade", die ST_Geometry-Implementierung in PostgreSQL und SQLite verwenden einen R-Baum-Index für die Indizierung räumlicher Daten. In SQLite ist der R-Baum-Index eine virtuelle Tabelle.

Sie können räumliche Indizes auf unterschiedliche Weise erstellen:

Beachten Sie bei der Ausgabe räumlicher Beziehungsabfragen für Tabellen, die "ST_Geometry"-Spalten enthalten, dass diese nur dann einen räumlichen Index zum Beschleunigen des Abfrageprozesses nutzen, wenn Sie bestimmte Funktionen für räumliche Beziehungen ausführen. Diese sind unter Wann werden räumliche Indizes verwendet? aufgeführt.

Oracle

Eine mit dem Speichertyp "ST_Geometry" erstellte Feature-Class mit einem räumlichen Index erzeugt eine zusätzliche Tabelle in der Oracle-Datenbank. Der Name der räumlichen Indextabelle lautet "S<n>_IDX$", wobei "<n>" dem Wert des Geometrieindexes für die Tabelle entspricht. Den Wert erhalten Sie, indem Sie die Tabelle "SDE.ST_GEOMETRY_COLUMNS" abfragen. Die räumliche Indextabelle wird als eine Oracle Indexed Organized Table (IOT) erstellt. Der im Attribut "ST_Geometry" angegebene räumliche Index wird in Enterprise Manager als "A<n>_IX1" angezeigt. Der Wert von "<n>" entspricht dem LAYER_ID-Wert in der Tabelle "LAYERS".

Es werden zwei zusätzliche Indizes für die Tabelle "S<n>_IDX$ table" erstellt: "S<n>$_IX1" und "S<n>$_IX2". Sie können angeben, wie diese Indizes im DBMS gespeichert werden, indem Sie unter dem Konfigurationsschlüsselwort "DBTUNE", das Sie beim Erstellen einer Feature-Class angeben, den Parameter "S_STORAGE" ändern.

Wenn Sie partitionierte Business-Tabellen erstellen, die eine ST_Geometry-Spalte enthalten, muss der räumliche Index ebenfalls partitioniert werden. Es gibt zwei Partitionierungsmethoden: global und lokal. Standardmäßig werden für partitionierte Business-Tabellen globale partitionierte Indizes erstellt. Um einen lokalen partitionierten Index zu erstellen, müssen Sie das Schlüsselwort "LOCAL" am Ende der CREATE INDEX-Anweisung hinzufügen. Damit ArcGIS das Schlüsselwort "LOCAL" am Ende der CREATE INDEX-Anweisung für den räumlichen Index hinzufügt, legen Sie den Parameter "ST_INDEX_PARTITION_LOCAL" in der Liste des Schlüsselworts "DEFAULTS" auf "TRUE" fest.

PostgreSQL

In PostgreSQL wird der R-Baum-Index mit der GiST-Indexinfrastruktur (Generalized Search Tree) implementiert. Informationen zur GiST-Indizierung finden Sie in der PostgreSQL-Dokumentation.

SQLite

Der räumliche Index in SQLite ist ein Tabellensatz, der als R-Baum-Index verwendet wird.

IBM DB2 und Informix

Weitere Informationen zu räumlichen Indizes in DB2 finden Sie unter Von DB2 Spatial Extender generierte räumliche Indizes. Weitere Informationen zu räumlichen Indizes in Informix finden Sie unter Räumliche Indizes in Geodatabases in Informix.

Verwandte Themen

5/10/2014