0

13 のテーブルにまたがるデータ (>100 万行) があります。

さまざまな列 (例: 地域、年など) に基づく 15 を超えるストアド プロシージャ (ディストリビューション) と、多数の集計データ用のストアド プロシージャがあります。

テーブルには、INNER JOINS に使用される一意のキー ( int)、この ID のクラスター化インデックス、および集計クエリと分散クエリで使用される列のカバー インデックスがあります。

これらのストアド プロシージャはすべて 8 分で実行されますが、1 分以内に結果が必要になります。

私が考えている回避策は、最初の実行後に分布の結果と集計データを保存し、計算を行わずにデータを取得することです。このシナリオは問題なく機能しますが、ストアド プロシージャ (動的 sp) にはフィルターがあり、このオプションは少し面倒です。

このシナリオにどのようにアプローチするのが最善かについて何か提案はありますか?

4

2 に答える 2

0

このソリューションを拡張する必要がほとんどない場合 (現在のフィルターを除いて)、事前にサポートされたレポート テーブルをそのまま使用することをお勧めします。システムはデータベースに関しては比較的小規模であり、応答時間は必要に応じて許容範囲内にあると思われます。

一連のレポート テーブルを作成してみてください。各テーブルが複数のレポートをカバーするのが理想的です。最終的には、各テーブルに列のスーパーセット (複数のレポートが必要) が保持されることになりますが、これにより、継続的な保守が非常に容易になります。ストアド プロシージャと一緒にレポート ツール (SSRS?) を使用して、ユーザーが選択可能なパラメーターでフィルタリングを管理します。

于 2012-11-20T17:31:22.297 に答える
0

このシナリオは、SQL Server Analysis Services キューブの候補のように思えます。SSAS を使用すると、データを集約し、大量のデータに対して迅速な分析を実行できます。お役に立てれば。

于 2012-11-20T16:48:17.557 に答える