インデックス オプションの設定

このトピックでは、SQL Server 2012 におけるインデックスのプロパティを、SQL Server Management Studio または Transact-SQL を使用して変更する方法について説明します。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    セキュリティ

  • 以下を使用してインデックスのプロパティを変更するには:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

制限事項と制約事項

  • ALTER INDEX ステートメントに SET 句を使用することによって、ALLOW_PAGE_LOCKS、ALLOW_ROW_LOCKS、IGNORE_DUP_KEY、および STATISTICS_NORECOMPUTE の各オプションが直ちにインデックスに適用されます。

  • ALTER INDEX REBUILD または CREATE INDEX WITH DROP_EXISTING を使用してインデックスを再構築する際には、PAD_INDEX、FILLFACTOR、SORT_IN_TEMPDB、IGNORE_DUP_KEY、STATISTICS_NORECOMPUTE、ONLINE、ALLOW_ROW_LOCKS、ALLOW_PAGE_LOCKS、MAXDOP、および DROP_EXISTING (CREATE INDEX のみ) の各オプションを設定できます。

セキュリティ

権限

テーブルまたはビューに対する ALTER 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

インデックスのプロパティをテーブル デザイナーで変更するには

  1. オブジェクト エクスプローラーで、インデックスのプロパティの変更対象となるテーブルが格納されているデータベースをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [テーブル] フォルダーを展開します。

  3. インデックスのプロパティを変更するテーブルを右クリックし、[デザイン] を選択します。

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

  5. 変更するインデックスを選択します。 対応するプロパティがメイン グリッドに表示されます。

  6. 該当するプロパティの設定を変更してインデックスをカスタマイズします。

  7. [閉じる] をクリックします。

  8. [ファイル] メニューの [table_name を保存] を選択します。

インデックスのプロパティをオブジェクト エクスプローラーで変更するには

  1. オブジェクト エクスプローラーで、インデックスのプロパティの変更対象となるテーブルが格納されているデータベースをプラス記号をクリックして展開します。

  2. プラス記号をクリックして [テーブル] フォルダーを展開します。

  3. インデックスのプロパティを変更するテーブルのプラス記号をクリックして展開します。

  4. プラス記号をクリックして [インデックス] フォルダーを展開します。

  5. プロパティを変更するインデックスを右クリックし、[プロパティ] を選択します。

  6. [ページの選択][オプション] を選択します。

  7. 該当するプロパティの設定を変更してインデックスをカスタマイズします。

  8. インデックス列の位置を追加、削除、または変更するには、[インデックスのプロパティ - index_name] ダイアログ ボックスの [全般] ページをクリックします。 詳細については、「[インデックスのプロパティ] の F1 ヘルプ」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

テーブル内のすべてのインデックスのプロパティを表示するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE AdventureWorks2012;
    GO
    SELECT i.name AS index_name, 
        i.type_desc, 
        i.is_unique, 
        ds.type_desc AS filegroup_or_partition_scheme, 
        ds.name AS filegroup_or_partition_scheme_name, 
        i.ignore_dup_key, 
        i.is_primary_key, 
        i.is_unique_constraint, 
        i.fill_factor, 
        i.is_padded, 
        i.is_disabled, 
        i.allow_row_locks, 
        i.allow_page_locks, 
        i.has_filter, 
        i.filter_definition
    FROM sys.indexes AS i
       INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id
    WHERE is_hypothetical = 0 AND i.index_id <> 0 
       AND i.object_id = OBJECT_ID('HumanResources.Employee'); 
    GO
    

インデックスのプロパティを設定するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
        Sales.SalesOrderHeader
    SET (
        STATISTICS_NORECOMPUTE = ON,
        IGNORE_DUP_KEY = ON,
        ALLOW_PAGE_LOCKS = ON
        ) ;
    GO
    
    USE AdventureWorks2012;
    GO
    ALTER INDEX ALL ON Production.Product
    REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
                  STATISTICS_NORECOMPUTE = ON);
    GO
    

詳細については、「ALTER INDEX (Transact-SQL)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]