テーブルにクラスター化列ストアインデックスと非クラスター化列ストアインデックスの両方を含めることはできますか?
非クラスター化バイナリ行インデックスのみでクラスター化列ストアインデックスを使用する方法の例を確認しています。
クラスター化列ストアと非クラスター化列ストアの両方を作成しようとすると、エラーが表示されます。
Msg 35339, Level 16, State 1, Line 7
Multiple columnstore indexes are not supported.
いいえ、できません:
CREATE TABLE dbo.cs_test (id INT NOT NULL)
CREATE CLUSTERED COLUMNSTORE INDEX cs_whatever ON dbo.cs_test
CREATE NONCLUSTERED COLUMNSTORE INDEX nc_whatever ON dbo.cs_test(id);
エラーメッセージを返します。
メッセージ35339、レベル16、状態1、行7複数の列ストアインデックスはサポートされていません。
複数の非クラスター化列ストアインデックスでも同じ結果が得られます。
これを可能にする意味はほとんどありません。とにかく、列はインデックス内で順序付けされていません。必要なすべての列を1つの唯一のcol-storeインデックスに含めるだけです(または、クラスター化されている場合は、すべての列が既に含まれています)。
(いくつかのcol-storeインデックスが有益であると主張することができますif行グループの削除を実行する機能を制御するために、ビルドフェーズをよりよく制御できました。しかし、最終的には各行グループのmax-min値に関する統計がない限り、オプティマイザが使用するcol-storeインデックスを決定するのは困難です。col-storeインデックスの内部を調べていない限り、これはあまり意味がないかもしれませんあなたへ... :-) )