次の方法で共有


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

空間インデックスは、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. [<table name> から列を選択] ダイアログ ボックスで、geometry 型か geography 型の列を選択します (対応するチェック ボックスをオンにします)。 その他の空間列は編集できなくなります。 別の空間列を選択するには、先に現在選択されている列の選択を解除する必要があります。 完了したら、[OK] をクリックします。

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

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

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

      geometry 型の列にインデックスを作成する場合は、境界ボックスの座標 (X-min,Y-min) および (X-max,Y-max) を指定する必要があります。 geography 型の列のインデックスの場合は、[地理グリッド] テセレーション スキームを指定すると境界ボックスのフィールドが読み取り専用になります。地理グリッド テセレーションでは境界ボックスは使用されません。

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

      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. [削除] をクリックします。

[先頭に戻る]

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

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

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

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

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

注意

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

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

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

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

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

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

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

バージョンの制限事項

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

[先頭に戻る]

関連項目

概念

空間インデックスの概要