Oracle と DB2 のジオデータベースでは、グリッド インデックスが使用されます。空間インデックスは、空間列のデータにグリッドを適用して構築されます。空間グリッド インデックスは、一般的な地図に見られる参照グリッドのように 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 つのレコードが追加されます。
空間インデックスは、フィーチャの挿入、更新、削除によって更新されます。各フィーチャの範囲を最も低いグリッド レベルにオーバーレイすることにより、グリッド セルの数が取得されます。フィーチャが SERVER_CONFIG テーブルの MAXGRIDSPERFEAT 値として設定した値を上回る場合、ジオメトリは 2 番目に高いグリッド レベルが定義されていれば、そのレベルに昇格されます。
Oracle データベースの場合は、フィーチャクラスの作成に使用するコンフィグレーション キーワードの S_STORAGE パラメーターを設定して、空間インデックスを作成する場所を指定することができます。コンフィグレーション パラメーターの設定の詳細については、「Oracle コンフィグレーション パラメーター」をご参照ください。