1

月/年ベースでさまざまな数値を要約するさまざまなアカウントの集計値を保存する必要があります。これらの数値は、データが更新されるたびに更新されます (通常、24 時間ごとに 1 回または 2 回)。

データが PIVOT 関数の結果であると期待しています。

Year    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011    0   0   0   0   0   0   95  33  34  24  36  52

各アカウントには、「顧客数」、「注文数」、「売上高」などの異なる集計が必要になります。データにキーを追加するのが最善か、別のテーブルを使用するのが最善かはわかりません。

Year    Key        Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011    CntOrders  0   0   0   0   0   0   95  33  34  24  36  52
2011    CntCust    0   0   0   0   0   0   95  33  34  24  36  52
2011    ValOrders  0   0   0   0   0   0   95  33  34  24  36  52

または dbo.CountOfOrders

Year    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011    0   0   0   0   0   0   95  33  34  24  36  52

dbo.ValueOfOrders

Year    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011    0   0   0   0   0   0   95  33  34  24  36  52

NoSQL と SQL Server の両方を提案する多くの投稿を読んだので、どちらに進むべきか、またはどのように決定すればよいかわかりません。

現時点では、専用のキューブを正当化することはできませんが、値を NoSQL データベースに格納する方がよいのか、それとも SQL Server を使い続ける必要があるのか​​疑問に思っています。

4

2 に答える 2

0

データをテーブルに挿入するストアド プロシージャを実行するジョブを設定します。

アカウント、年、月、値などのデータを保存します

これらのテーブルのビューを使用して、複数の集計をレポートします。

間違いなくSQLに固執します。このような単純なタスクに技術的なオーバーヘッドを追加する理由はありません。

于 2012-09-29T14:20:39.553 に答える
0

私はSQLに固執します。ただし、そのような PIVOT テーブルを再構築する時間が心配な場合は、必ずしも一意の「キー」を持つテーブルを構築する必要がないため、心配しないでください。

key + process datetime でビルドし、メイン ピボットに追加するだけです。したがって、インクリメンタルの作成中に、トランザクションのタイムスタンプ (開始と終了) によって制限されます。膨らみが多いはずです。ある場合は、週末のジョブでプロセスの日付を折りたたむことができます。

于 2012-09-30T16:21:01.357 に答える