ArcGIS Pro は、空間インデックスを使用して、フィーチャクラスの空間検索パフォーマンスを向上させます。ArcGIS Pro では、フィーチャの個別属性表示、ボックスのポイントまたはドラッグによるフィーチャの選択、画面移動とズームを実行する場合に、空間インデックスを使用してフィーチャを特定する必要があります。
空のフィーチャクラスを作成するか、ArcGIS Pro からデータをインポートしてジオデータベース内にフィーチャクラスを作成すると、フィーチャクラスに空間インデックスが作成されます。空間インデックスは、データの検索および編集中に使用されます。
メモ:
これに対する例外は Db2 です。Db2 のジオデータベースに空のフィーチャクラスを作成する場合、空間インデックスは作成されません。
空間インデックス タイプ
空間インデックスは、データ ソースによって異なります。以下の空間インデックス タイプのリストには、フィーチャクラスでこのインデックスを使用するジオデータベースのデータ ソースが含まれています。
- グリッドベースの空間インデックス
- ファイル ジオデータベース
- Db2 のジオデータベース
- Oracle のジオデータベース (フィーチャクラスに Esri ST_Geometry 列が含まれている場合)
- R 木空間インデックス
- モバイル ジオデータベース
- データ タイプが Oracle Spatial (SDO_Geometry) のフィーチャクラスを含む、Oracle のジオデータベース
- 汎用検索ツリー (GiST) インデックス
- PostgreSQL のジオデータベース
- 修正 B 木空間インデックス
- Geometry 空間列または Geography 空間列を使用するフィーチャクラスを含む、Microsoft SQL Server のジオデータベース。Geometry 空間列の空間インデックスには、境界四角形の座標も格納されています。境界四角形に関する詳細については、Microsoft SQL Server のドキュメントをご覧ください。
ArcGIS の空間インデックス管理
ArcGIS Pro が空間インデックスを作成または再構築する方法は、ジオデータベースのタイプによって異なります。エンタープライズ ジオデータベースの場合は、使用するデータベース管理システムによって異なります。次の 2 つのセクションでは、これらの機能の違いについて説明します。
ファイル ジオデータベースの空間インデックス
以下は、ファイル ジオデータベースの空間インデックスに関する説明です。
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成します。
- フィーチャクラスをジオデータベースからファイル ジオデータベースにコピーする際、ソース フィーチャクラスがグリッドベースのインデックス (Oracle Esri ST_Geometry、Db2、またはファイル ジオデータベース) を使用している場合、空間インデックスはソース データとともにコピーされます。ソース データがその他のインデックス タイプを使用している場合は、ターゲット ファイル ジオデータベースで空間インデックスが再構築されます。
- 圧縮されたファイル ジオデータベースのフィーチャクラスは、圧縮されていないフィーチャクラスとは異なるタイプの空間インデックスを使用します。ファイル ジオデータベースのフィーチャクラスを圧縮すると、空間インデックスが自動的に再計算されます。この空間インデックスを変更することはできません。フィーチャクラスを解凍すると、圧縮前と同じ空間インデックスが自動的に再構築されます。
モバイル ジオデータベースの空間インデックス
以下は、モバイル ジオデータベースの空間インデックスに関する説明です。
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成します。
- 空間インデックスを含まないフィーチャクラスにフィーチャの編集を保存しても、空間インデックスは作成されません。
- フィーチャクラスをジオデータベースからモバイル ジオデータベースにコピーすると、ArcGIS Pro は、コピーされたフィーチャを基に、モバイル ジオデータベースのフィーチャクラスに空間インデックスを作成します。
エンタープライズ ジオデータベースの空間インデックス
次のリストでは、サポート対象の各データベース管理システムのジオデータベースにあるフィーチャクラスの空間インデックスを ArcGIS Pro が管理する方法について説明します。
- Db2
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成しません。
- 空間インデックスを含まないフィーチャクラスにフィーチャの編集を保存すると、空間インデックスが作成されます。
- フィーチャクラスをあるジオデータベースから Db2 のジオデータベースにコピーすると、ソース フィーチャクラスがグリッドベースのインデックス (Oracle Esri ST_Geometry、Db2、またはファイル ジオデータベース) を使用している場合は、空間インデックスがソース データとともにコピーされます。ソース データがその他のインデックス タイプを使用している場合、ArcGIS Pro はコピーされたフィーチャに基づいて、Db2 のターゲット ジオデータベースに空間インデックスを作成します。
- Oracle
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成します。
- 空間インデックスを含まないフィーチャクラスにフィーチャの編集を保存すると、空間インデックスが作成されます。
- フィーチャクラスをジオデータベースから Oracle のジオデータベースにコピーし、フィーチャクラスに Esri ST_Geometry タイプを使用する際、ソース フィーチャクラスがグリッドベースのインデックス (Oracle Esri ST_Geometry、Db2、またはファイル ジオデータベース) を使用している場合、空間インデックスはソース データとともにコピーされます。ソース データがその他のインデックス タイプを使用している場合、ArcGIS Pro はコピーされたフィーチャに基づいて、Oracle のターゲット ジオデータベースに空間インデックスを作成します。
- PostgreSQL
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成します。
- 空間インデックスを含まないフィーチャクラスにフィーチャの編集を保存すると、空間インデックスが作成されます。
- フィーチャクラスをジオデータベースから PostgreSQL のジオデータベースにコピーすると、ArcGIS Pro はコピーされたフィーチャに基づいて、PostgreSQL のフィーチャクラスに空間インデックスを作成します。
- SQL Server
- フィーチャクラスを作成する際、ArcGIS Pro は空間インデックスを作成します。
- 空間インデックスを含まないフィーチャクラスにフィーチャの編集を保存しても、空間インデックスは作成されません。
- フィーチャクラスをジオデータベースから SQL Server のジオデータベースにコピーすると、ArcGIS Pro はコピーされたフィーチャに基づいて、SQL Server のフィーチャクラスに空間インデックスを作成します。
- SAP HANA は検索のパフォーマンス向上のために空間インデックスを使用しません。このため、ArcGIS Pro は空間インデックスを作成または維持しません。
空間インデックスの更新時期
Geometry 空間タイプを使用する SQL Server のフィーチャクラスの場合、空間インデックスは境界四角形を使用します。この境界四角形は、フィーチャの挿入および削除時に手動で更新する必要があります。SQL Server のフィーチャクラスの空間インデックスを再計算するタイミングを判断するには、[フィーチャクラス プロパティ] ダイアログ ボックスで [整合チェック] 操作を使用します。
その他のすべてのジオデータベースおよび空間タイプで、空間インデックスを管理する必要はほとんどありません。ただし、多数のフィーチャを追加または削除した後に空間クエリのパフォーマンスが低下する場合は、影響を受けているフィーチャクラスで空間インデックスを再構築 (Oracle) または再作成することで、空間クエリのパフォーマンスが向上することがあります。