Räumliche Indizes und "ST_Geometry"
Räumliche Indizes, die mit "ST_Geometry" verwendet werden, werden abhängig vom DBMS unterschiedlich implementiert. Das Modul "IBM Informix Spatial DataBlade" und die "ST_Geometry"-Implementierung in PostgreSQL verwenden einen R-Baum-Index zum Indizieren räumlicher Daten. "ST_Geometry" in Oracle und DB2 verwendet ein räumliches Indexgitter.
Sie können räumliche Indizes auf unterschiedliche Arten erstellen:
- Klicken Sie für Indexgitter in ArcCatalog im Dialogfeld Eigenschaften: Feature-Class auf der Registerkarte "Indizes" auf Hinzufügen. Weitere Informationen finden Sie unter Festlegen von räumlichen Indizes.
- Verwenden Sie den administrativen Befehl "sdelayer". Informationen hierzu finden Sie in der "ArcSDE Administration Command Reference".
- Verwenden Sie SQL. Informationen hierzu finden Sie unter Erstellen von räumlichen Indizes für Tabellen mit einer Spalte "ST_Geometry".
- Verwenden Sie die C- oder Java-Anwendungsprogrammierschnittstellen (APIs) von ArcSDE. Informationen hierzu finden Sie im Geodatabase Resource Center.
- Wechseln Sie für eine Feature-Class aus dem Nur-Lade-E/A-Modus zurück in den normalen E/A-Modus, indem Sie den Befehl "sdelayer" mit den Vorgängen "load_only_io" und "normal_io" verwenden. ArcSDE löscht automatisch die von ArcSDE erstellten räumlichen Indizes und erstellt neue, wenn die Feature-Class aus dem Modus LOAD_ONLY_IO in den Modus NORMAL_IO wechselt.
Wenn Sie räumliche Beziehungsabfragen für Tabellen ausgeben, die "ST_Geometry"-Spalten enthalten, nutzen diese einen räumlichen Index zum Beschleunigen des Abfrageprozesses nur, 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 Geometrieindex 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 auf der 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 Kapitel 51 der PostgreSQL 8.3-Dokumentation.
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.