帯状の分布曲線を示す整数値の行列であるデータがあります。INSERT パフォーマンスよりも SELECT パフォーマンスを最適化しています。最大 100 のバンドがあります。主に、一定期間のバンドを合計または平均することで、このデータをクエリします。
私の質問は、バンドごとに 1 列のテーブル全体でこのデータを平坦化するか、バンド値を表す単一の列を使用して、パフォーマンスを向上させることができるかということです。
フラット化されたデータ
UserId ActivityId DateValue Band1 Band2 Band3....Band100
10001 10002 1/1/2013 1 5 100 200
または正規化
UserId ActivityId DateValue Band BandValue
10001 10002 1/1/2013 1 1
10001 10002 1/1/2013 2 5
10001 10002 1/1/2013 3 100
サンプルクエリ
SELECT AVG(Band1), AVG(Band2), AVG(Band3)...AVG(Band100)
FROM ActivityBands
GROUP BY UserId
WHERE DateValue > '1/1/2012' AND DateValue < '1/1/2013'