При создании пространственных индексов вам нужно предоставить следующую информацию.
- Имя индекса
- Имя таблицы, которая содержит пространственный столбец, в котором будет определен индекс
- Имя пространственного столбца, для которого будет определен индекс
- Размеры сетки (необходимо только для баз данных, использующих индекс на основе сетки, например, в Oracle или Db2)
Далее представлены примеры создания пространственного индекса для столбца ST_Geometry для каждого поддерживаемого типа СУБД.
- Откройте редактор SQL и подключитесь к базе данных.
- В Oracle, PostgreSQL, Db2 и Informix для создания пространственного индекса используйте выражение CREATE INDEX. В SQLite используйте функцию CreateSpatialIndex.
-
Oracle
CREATE INDEX sa_idx ON sensitive_areas(zone) INDEXTYPE IS sde.st_spatial_index PARAMETERS('st_grids=1,3,0 st_srid=4326'); CREATE INDEX hs_idx ON hazardous_sites(location) INDEXTYPE IS sde.st_spatial_index PARAMETERS('st_grids=1,0,0 st_srid=4326');
-
PostgreSQL
CREATE INDEX sa_idx ON sensitive_areas USING gist(zone st_geometry_ops); CREATE INDEX hs_idx ON hazardous_sites USING gist(location st_geometry_ops);
- Db2
CREATE INDEX sa_idx ON sensitive_areas(zone) EXTEND USING db2gse.spatial_index (1.0, 3.0, 0.0) CREATE INDEX hs_idx ON hazardous_sites(location) EXTEND USING db2gse.spatial_index (1.0, 0.0, 0.0)
-
Informix
CREATE INDEX sa_ix ON sensitive_areas (zone ST_Geometry_ops) USING RTREE; CREATE INDEX hs_ix ON hazardous_sites (location ST_Geometry_ops) USING RTREE;
- SQLite
SELECT CreateSpatialIndex('mydatabase','sensitive_areas','zone','rtreexy'); SELECT CreateSpatialIndex('mydatabase','hazardous_sites','location','rtreexy');
-
Oracle