背景:
UATフェーズにファクトテーブルがあります。Prodに5年間のデータをロードする目的(予想されるサイズ4億Mnレコード)現在、テストのデータはわずか2年です。
テーブルの特徴:
- 次元数〜45
- 対策〜30
- 非加法メジャーとその他の列〜25
- 現在のデータサイズ〜2億(2年間のデータ)
- タイムビュー:3つの異なる月ビュー:会計/カレンダー/調整(つまり、同じ行が探しているビューに基づいて異なる月に分類される場合があります)
- ユーザーが一度に必要とするビューは1つだけです。(つまり、クエリで使用されるのは1つのMonth列のみです。これにより、時間表示でパーティション分割ができなくなります)
- インデックス:Natural Keysに1つのクラスター化インデックス(8列)。ディメンションSK(FK)とすべてのメジャーを含む各Month列に1つずつ非クラスター化インデックスをカバーする3つを作成しました。
- このため、インデックスは巨大です(合計190 GB)。
- スペースに制約はありません(1 TBが割り当てられています)
- サーバーで使用可能な64 GBのRAM。
- テーブルの圧縮も完了しました。
要件:
このファクトテーブルのクエリは、30秒以内に結果を返す必要があります(一般的なクエリは、Dim値でいくつかのDimsグループに参加するsum(measure)を選択します)。レポートは、このファクトテーブルの上で直接行われます。
問題:
インデックスで使用可能な列を含むクエリはすべて正常に機能しますが、インクルードにない他の列を含めると.. 5〜10分以上かかります。選択したディメンション/列でうまく機能するソリューションを提案できますか?この状況でインデックスビューは役立ちますか?