空間グリッド インデックス

Oracle と DB2 の ArcSDE ジオデータベースでは、グリッド インデックスが使用されます。空間インデックスは、空間列のデータにグリッドを適用して構築されます。空間グリッド インデックスは、一般的な地図に見られる参照グリッドのように 2 次元であり、各種フィーチャクラスを対象としています。空間グリッド インデックスには、それぞれ固有のセル サイズを持つ 1 つ、2 つ、または 3 つのグリッド レベルを割り当てることができます。1 つ目のグリッド レベルは必須で、セル サイズが最小です。オプションの 2 つ目と 3 つ目のグリッド セル レベルは、サイズを 0 に設定すれば無効にすることができます。各グリッド セル レベルを有効にする場合、2 つ目のセル サイズは 1 つ目のグリッド セル サイズの 3 倍以上でなければならず、3 つ目のグリッド セル レベルのセル サイズは 2 つ目のグリッド セル サイズの 3 倍以上でなければなりません。

次の例は、2 つのグリッド レベルをもつフィーチャクラスです。エリア シェープ 101 はレベル 1 のグリッド セル 4 に位置しています。このフィーチャは 4 つ以内のグリッド セルの範囲内にある(この場合は 1 つ)ため、レコードは空間インデックス テーブルに追加されます。エリア フィーチャ 102 のエンベロープはレベル 1 のセル 1 から 8 に位置しています。フィーチャのエンベロープは 4 つを上回るグリッド セルにあるため、フィーチャは、エンベロープが 2 つのグリッド セルの範囲内に収まるレベル 2 に昇格されます。フィーチャ 102 はレベル 2 でインデックス付けされ、空間インデックス テーブルに 2 つのレコードが追加されます。

形状 101 はグリッド レベル 1 でインデックス付けされ、形状 102 は、2 つのグリッド セルの範囲内にあるのでグリッド レベル 2 でインデックス付けされます。
シェープ 101 はグリッド レベル 1 でインデックス付けされ、シェープ 102 は、2 つのグリッド セルの範囲内にあるのでグリッド レベル 2 でインデックス付けされます。

空間インデックスは、フィーチャの挿入、更新、削除によって更新されます。各フィーチャの範囲を最も低いグリッド レベルにオーバーレイすることにより、グリッド セルの数が取得されます。フィーチャが SERVER_CONFIG テーブルの MAXGRIDSPERFEAT 値として設定した値を上回る場合、ジオメトリは 2 番目に高いグリッド レベルが定義されていれば、そのレベルに昇格されます。

Oracle データベースの場合は、フィーチャクラスの作成に使用するコンフィグレーション キーワードの S_STORAGE パラメータを設定して、空間インデックスを作成する場所を指定することができます。コンフィグレーション パラメータの設定については、「Oracle の DBTUNE コンフィグレーション パラメータ」と『ArcSDE コマンド リファレンス』に収録されている sdedbtune コマンドをご参照ください。

関連トピック

5/25/2014