次の方法で共有


空間インデックスの作成、変更、および削除

空間インデックスは、 geometry または geography データ型 ( 空間列) の列に対して特定の操作をより効率的に実行できます。 1 つの空間列に対して複数の空間インデックスを指定できます。 たとえば、1 つの列の異なるテセレーション パラメーターのインデックスを作成する場合などに便利です。

空間インデックスの作成にはいくつかの制限があります。 詳細については、このトピックの「 空間インデックスに関する制限 」を参照してください。

空間インデックスとパーティションやファイル グループとの関係については、「CREATE SPATIAL INDEX (Transact-SQL)」の「解説」をご覧ください。

空間インデックスの作成、変更、および削除

空間インデックスを作成するには

Transact-SQL を使用して空間インデックスを作成するには
CREATE SPATIAL INDEX (Transact-SQL)

Management Studio の [新しいインデックス] ダイアログ ボックスを使用して空間インデックスを作成するには

Management Studio で空間インデックスを作成するには
  1. オブジェクト エクスプローラーで、 SQL Server データベース エンジン のインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース]を展開し、指定されたインデックスを含むテーブルが格納されたデータベースを展開して、 [テーブル]を展開します。

  3. インデックスを作成するテーブルを展開します。

  4. 新しいインデックス を右クリックし、新しいインデックス を選択します。

  5. [インデックス名] フィールドにインデックスの名前を入力します。

  6. [インデックスの種類] ボックスの一覧の [空間]をクリックします。

  7. インデックスを作成する空間列を指定するには、 [追加]をクリックします。

  8. [ テーブル名から列<選択> ] ダイアログ ボックスで、対応するチェック ボックスをオンにして、 geometry または geography の種類の列を選択します。 その他の空間列は編集できなくなります。 別の空間列を選択するには、先に現在選択されている列の選択を解除する必要があります。 完了したら、 [OK] をクリックします。

  9. [インデックス キー列] グリッドで、選択した列を確認します。

  10. [インデックスのプロパティ] ダイアログ ボックスの [ページの選択] ペインで、 [空間]をクリックします。

  11. [空間] ページで、インデックスの空間プロパティに対して使用する値を指定します。

    geometry型の列にインデックスを作成する場合は、境界ボックスの(X-min,Y-min)(X-max,Y-max)座標を指定する必要があります。 geography型列のインデックスの場合、geography グリッド テセレーションでは境界ボックスが使用されないため、ジオグラフィ グリッドテセレーション スキームを指定した後、境界ボックス フィールドは読み取り専用になります。

    また、 [オブジェクトごとのセル数] フィールドに既定以外の値を指定したり、テセレーション スキームの任意のレベルのグリッド密度を指定したりすることもできます。 オブジェクトあたりのセルの既定の数は、SQL Server 2008 の場合は 16、SQL Server 2012 (11.x) 以降の場合は 8 で、既定のグリッド密度は SQL Server 2008 の場合は Medium です。

    SQL Server では、テセレーション スキームに GEOMETRY_AUTO_GRID または GEOGRAPHY_AUTO_GRID を選択することができます。 GEOMETRY_AUTO_GRID または GEOGRAPHY_AUTO_GRID を選択すると、レベル 1、レベル 2、レベル 3、およびレベル 4 のグリッド密度のオプションが無効になります。

    これらのプロパティの詳細については、「 [インデックスのプロパティ] の F1 ヘルプ」をご覧ください。

  12. OK をクリックします。

同じ空間列または異なる空間列に別の空間インデックスを作成するには、上の手順を繰り返します。

Management Studio のテーブル デザイナーを使用して空間インデックスを作成するには

テーブル デザイナーで空間インデックスを作成するには
  1. オブジェクト エクスプローラーで、空間インデックスを作成するテーブルを右クリックし、 [デザイン]をクリックします。

    [テーブル デザイナー] にテーブルが表示されます。

  2. インデックスを作成する geometry 列または geography 列を選択します。

  3. [テーブル デザイナー] メニューの [空間インデックス]をクリックします。

  4. [空間インデックス] ダイアログ ボックスの [追加]をクリックします。

  5. [選択された空間インデックス] ボックスの一覧で新しいインデックスを選択し、右側のグリッドで空間インデックスのプロパティを設定します。 プロパティの詳細については、「[空間インデックス] ダイアログ ボックス Visual Database Tools」をご覧ください。

空間インデックスを変更するには

空間インデックスを削除するには

Transact-SQL を使用して空間インデックスを削除するには
DROP INDEX (Transact-SQL)

Management Studio を使用してインデックスを削除するには
インデックスの削除

Management Studio のテーブル デザイナーを使用して空間インデックスを削除するには

テーブル デザイナーで空間インデックスを削除するには
  1. オブジェクト エクスプローラーで、削除する空間インデックスが含まれているテーブルを右クリックし、 [デザイン]をクリックします。

    [テーブル デザイナー] にテーブルが表示されます。

  2. [テーブル デザイナー] メニューの [空間インデックス]をクリックします。

    [空間インデックス] ダイアログ ボックスが表示されます。

  3. [選択された空間インデックス] 列で削除するインデックスをクリックします。

  4. [Delete] をクリックします。

空間インデックスに関する制限

空間インデックスを作成できるのは、geometry 型か geography 型の列だけです。

テーブルおよびビューの制限

空間インデックスは、主キーがあるテーブルでしか定義できません。 テーブルの主キー列の最大数は 15 です。

インデックス キー レコードの最大サイズは 895 バイトです。 このサイズを超えるとエラーが発生します。

主キーのメタデータは、テーブルに空間インデックスが定義されていると変更できません。

インデックス付きビューに対して空間インデックスを指定することはできません。

複数の空間インデックスに関する制限

空間インデックスは、サポートされているテーブルの任意の空間列に 249 個まで作成できます。 同じ空間列に複数の空間インデックスを作成すると、1 つの列の異なるテセレーション パラメーターのインデックスを作成する場合などに便利です。

一度に作成できる空間インデックスは 1 つだけです。

空間インデックスとプロセスの並列処理

インデックスの構築では、プロセスの並列処理を使用できます。

バージョンの制限事項

SQL Server 2012 (11.x) で導入された空間テッセレーションは、SQL Server 2008 R2 または SQL Server 2008 にレプリケートできません。 SQL Server 2008 R2 または SQL Server 2008 データベースとの下位互換性が要件である場合は、空間インデックスに SQL Server 2008 R2 または SQL Server 2008 空間テッセレーションを使用する必要があります。

参照

空間インデックスの概要