SQL を使用した ST_Geometry 列を持つテーブルでの空間インデックスの作成
空間インデックスを作成するには、以下の情報を指定する必要があります。
- インデックスの名前
- インデックスを定義する空間列を含むテーブルの名前
- インデックスを定義する空間列の名前
- グリッド サイズ(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 sa_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
関連トピック
5/25/2014