多数の関連テーブルを含むシステムがあります。標準的なカテゴリ/製品/注文/顧客/注文商品のシナリオを考えてみてください。一部のテーブルは自己参照型です (カテゴリなど)。特に大きなテーブルはありません (約 100,000 行で、推定スケールは約 100 万行です)。このデータには考慮する必要がある多くのディメンションがありますが、ほぼリアルタイムでクエリを実行する必要があります。また、特定のユーザーがどのディメンションに関心を持っているかもわかりません。それは、多数のテーブルにわたる 1 つまたは複数の基準である可能性があります。物事の範囲は次のとおりです。
- ジャケットのカテゴリですべて教えてください
- 先月ニューヨークで購入した赤い色のジャケット->パーカーのカテゴリをすべて教えてください
- 100ドル以上するニューヨーク以外で購入したものをすべて私にください。
現在、「カスケード データ」アプローチを使用する非常に長い SP があります。テーブルごとに移動し、そのテーブルに指定された基準を使用して、すべてを一時テーブルにフィルター処理します。次のテーブルでは、現在の一時テーブルを使用しているテーブルに結合し、新しいフィルター セットを新しい一時テーブルに適用します。動作しますが、管理性とパフォーマンスが低下します。もっといいものが必要です。
この問題に対する新しいアプローチが必要です。おそらくスター スキーマを使用して、明らかに OLAP が必要です。これはリアルタイムで機能しますか?リアルタイムで動作するように構成できますか? 非正規化テーブルのセットを作成するには、インデックス付きビューを使用する必要がありますか? これをデータベースの外部に完全にオフロードする必要がありますか?
参考までに、Sql Server を使用しています。