SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 4月 25th, 2024

SQL Server のフィルター選択されたインデックスの利用について

leave a comment

SQL Server では フィルター選択されたインデックス (フィルター化インデックス) というインデックスを作成することができます。

このインデックスはインデックスの作成を行う際に、以下のクエリのように、インデックス作成時に WHERE 句を指定することで、特定の範囲のデータのみが含まれたインデックスを作成することができます。

CREATE NONCLUSTERED INDEX [NCIX_accesslog2_01] ON [frontdoor].[accesslog2]
(
	[time] ASC
)
WHERE ([time]>='2020-01-01' AND [time]<'2021-01-01')

フィルター選択されたインデックスは、特定のデータ範囲のみがインデックスに含まれますので次のようなメリットがあります。

  • インデックスで使用されるストレージサイズの削減
  • フィルター外のデータを追加 / 変更する場合のインデックス更新コストの削減
  • 該当データ範囲で Index Scan が発生した場合の、Scan コストの削減

特定のデータ範囲の検索向けに作成するインデックスとして便利な機能となるのですが、作成したインデックスが使用されるかどうかについては考慮が必要な点がありますので、本投稿で触れておきたいと思います。

フィルター選択されたインデックスの詳細な情報については次のドキュメントが参考となります。

Read the rest of this entry »

Written by Masayuki.Ozawa

4月 25th, 2024 at 10:34 pm

Posted in SQL Server

Tagged with