製品属性を含む 17Mil 行のテーブルがあり、次のようにします。
brandID、sizeID、colorID、price、shapeID
そして、ブランドとサイズごとに集計を照会する必要があります。現在、次のようにして、このデータのクエリとフィルタリングを行います。
select brandID, sizeID, count(*)
from table where colorID in (1,2,3) and price=10 and shapeID=17
--"additional complex where clause here"
group by brandID, sizeID
order by brandID, sizeID
そして、このデータを報告します。問題は、返される実際のデータが数百行にすぎないにもかかわらず、このクエリを実行するのに 10 秒ほどかかることです (これは非常に単純な例です)。
このテーブルにインデックスを作成する容量に達したと思うので、インデックスの量がいくらあってもすぐに結果が得られるとは思えません。
私は OLAP やその他の分析サービスについてほとんど知りませんが、上記のようなクエリ (または同等のデータを返す同様のクエリ) を実行できるように、このテーブルを事前にフィルター処理または事前に集計できる SQL Server には何がありますか? または非常に大きなテーブルで任意の where 句を処理する最良の方法は何ですか?