インデックス オプションの設定
このトピックでは、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 の使用
インデックスのプロパティをテーブル デザイナーで変更するには
オブジェクト エクスプローラーで、インデックスのプロパティの変更対象となるテーブルが格納されているデータベースをプラス記号をクリックして展開します。
プラス記号をクリックして [テーブル] フォルダーを展開します。
インデックスのプロパティを変更するテーブルを右クリックし、[デザイン] を選択します。
[テーブル デザイナー] メニューの [インデックス/キー] をクリックします。
変更するインデックスを選択します。 対応するプロパティがメイン グリッドに表示されます。
該当するプロパティの設定を変更してインデックスをカスタマイズします。
[閉じる] をクリックします。
[ファイル] メニューの [table_name を保存] を選択します。
インデックスのプロパティをオブジェクト エクスプローラーで変更するには
オブジェクト エクスプローラーで、インデックスのプロパティの変更対象となるテーブルが格納されているデータベースをプラス記号をクリックして展開します。
プラス記号をクリックして [テーブル] フォルダーを展開します。
インデックスのプロパティを変更するテーブルのプラス記号をクリックして展開します。
プラス記号をクリックして [インデックス] フォルダーを展開します。
プロパティを変更するインデックスを右クリックし、[プロパティ] を選択します。
[ページの選択] の [オプション] を選択します。
該当するプロパティの設定を変更してインデックスをカスタマイズします。
インデックス列の位置を追加、削除、または変更するには、[インデックスのプロパティ - index_name] ダイアログ ボックスの [全般] ページをクリックします。 詳細については、「[インデックスのプロパティ] の F1 ヘルプ」を参照してください。
[Top]
Transact-SQL の使用
テーブル内のすべてのインデックスのプロパティを表示するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。
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
インデックスのプロパティを設定するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。
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]