列ストアインデックス
列ストアインデックス(カラムストアインデックス)は、主にDWHでの集計効率を向上させるために導入された列集約形式のインデックス。CREATE NONCLUSTERED COLUMNSTORE INDEX [CIX_1] ON TABLE1 (F1)※制約も多い・使用できないデータ型: binary, varbinary, image, text, ntext, varchar(MAX), nvarchar(MAX), timestamp, uniqueidentifier, sqlvariant, xml, 有効桁数が18桁より多いnumeric(decimal)など・クラスタ化できない・複数作成できない・ビューには張れない・計算列やスパース列、ファイルストリーム列は含められない・レプリケーション、CDC、CDTとは同時に使用できない※列ストアインデックスがあるテーブルは更新できない・更新する場合は、一旦無効にするか、パーティションを使用 ALTER INDEX [CIX_1] ON [TABLE1] DISABLE (更新) ALTER INDEX [CIX_1] ON [TABLE1] REBUILDなお、今後のバージョンでもテーブルが更新不可になるかどうかは未定「テーブルを読み取り専用にするためのメカニズムとして列ストアインデックスを作成しないでください」と記載あり※その他・ベーステーブルのクラスタ化インデックスの列は、指定しなくても列ストアインデックスに自動的に含まれる・列ストアインデックスは作成時に独自のアルゴリズムで圧縮済・クエリヒント:IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX・SSMSの場合、ユーザ定義型はGUIでは指定できない (ユーザ定義型でも、base_typeが使用可能なデータ型であれば、列ストアインデックスを設定できる) 逆に有効桁数が18桁より多いnumericは指定できるが実行時にエラーとなる