以下のデータウェアハウスのインデックス作成(SQL Server 2014 SP1 Ent)に対する私のアプローチを見て、それが正しいか、変更する必要があるかを教えてください。 (ほとんどの場合、データウェアハウスはSSAS Cubeに使用され、場合によっては直属の部下に使用されます)
私のインデックス作成アプローチ:
さらに、Visual Studio SSDTを使用したテストラボで、FILEGROUPに属するファクトテーブルにCCIインデックスを配置しようとしましたが、FILEGROUPに属するテーブルでCCIを使用できないという情報でエラーが発生します。奇妙なことに、SSMSからそのようなCCIを直接作成できます。 Visual Stusioの問題またはSSMSのバグ?
ファクトテーブルの外部キーごとに単一列のインデックスを追加したとのことですが。多くの場合、少なくとも一部の外部キーはカーディナリティが低いため、それ自体ではインデックスに役立たない可能性があります。 https://www.ibm.com/developerworks/data/library/techarticle/dm-1309cardinal/
これらは、ユーザーがテーブルをクエリする方法に基づいて設計できる複数列のインデックスの一部としてより役立つ場合があります。
ワークロードがそれに適している場合は、非クラスター化列ストアインデックスを大きなディメンションテーブルとファクトテーブルで検討する必要があります。これらは、データウェアハウスのワークロードに最適です。 http://www.nikoport.com/2016/03/07/columnstore-indexes-part-79-loading-data-into-non-updatable-nonclustered-columnstore/
2014を使用しているため、制約やその他のインデックスを保持する場合は、非クラスター化が唯一のオプションです。