9

私は、メトリック データを記録するプロジェクトを率いています。データを何年も保持したい。ただし、プライマリ テーブルがデータで肥大化しないようにしたいと考えています。これらのデータは、長期的な傾向には必要ですが、短期的なレポートには必要ありません。

この状況を処理するための最善の戦略は何ですか? 古いデータを別のテーブルにアーカイブするだけですか? それとも、データ自体を統合して「ロールアップ」しますか (そして、別のテーブルに保存しますか)? それともまったく別のものですか?

追加情報: SQL Server 2005 を使用しています。

4

5 に答える 5

4

私の仕事では両方の方法を使用しますが、わずかに異なります。すべての売上データをプライマリ テーブルに 30 日間保持し、その後、夜間 (夜間ジョブの一部) に、売上が要約にまとめられます (x 製品の n 個の数量が販売されます)。今日 ect) を別のテーブルに報告し、30 日以上の売上は別のデータベースにアーカイブされ、その後、年に 1 回 (課税年度に進みます)、新しいアーカイブ データベースが開始されます。正確には完璧ではありませんが..

このようにして、要約データを迅速に取得し、現在のすべての販売データを手元に置き、詳細なアーカイブ データ用に無制限のスペースを確保します。すべてを 1 つのデータベース (別のテーブル) に保持しようとしましたが、データベース (インターベース) のファイル サイズが大きくなりすぎて、システムがダウンしてしまいました。

接続と切断が遅く、SQL ではなくコードで分析を行う必要があるため、私たちが抱えている唯一の問題は、複数のデータベースにまたがる詳細なデータにアクセスすることです。

于 2008-08-21T12:54:23.463 に答える
4

SQL Server 2005 を使用している場合は、これがパーティション テーブルの使用に適している可能性があります。

于 2008-08-21T13:02:24.130 に答える
2

予算などの制約にもよりますが、これはデータウェアハウスアプリケーションの最適な候補のように聞こえます。これにより、通常、データウェアハウスとして使用するための新しいサーバーが導入されます。SQL Server 2005は、箱から出してすぐにこのアクティビティの多くをサポートします。さらに、追加のSQL Serverサービス(Analysis Services、Reporting Servicesなど)を利用して、ユーザーに付加価値を提供できる場合があります。(http://www.microsoft.com/technet/prodtechnol/sql/2005/dwsqlsy.mspxを参照)

于 2008-08-21T13:47:48.220 に答える
2

@Jason-データをプレーンな古いテキストファイルに保存することで、データに対して長期的なトレンド分析を簡単に行うことができるようになるとは思いません。

@Jason - 私の要点は、ビジネスマンがデータに対して何らかのアドホック分析 (つまり、傾向分析) を行う必要がある場合、データをテキスト ファイルにロールアップまたはアーカイブしても、実際には問題が解決しないということです。もちろん、テキスト ファイルを使用するコードを記述することは多くの言語で簡単ですが、その問題は解決されています。また、今日の RDBMS はすべて、セットアップとメンテナンスが適切に行われていれば、非常に耐久性があると思います。そうでない場合、なぜその上でビジネスを運営するのでしょうか (データをアーカイブするどころか)。テキスト ファイルの耐久性はデータベースの耐久性よりも優れていると主張しているため、プレーン テキスト ファイルにアーカイブする意味がわかりません。

于 2008-08-21T13:39:29.300 に答える
1

これらのオプションはどちらも優れていますが、実際には問題のドメインによって異なります。現金残高や統計データなどについては、レコードをロールアップして統合するのが最善の方法だと思います。その後、ロールアップされたレコードを並列アーカイブ テーブルに移動し、次の場合に「展開」できるようにキーを設定します。必要。これにより、プライマリ データ テーブルがクリーンで高速に保たれますが、監査などのために余分なデータを保持できます。重要な問題は、「ロールアップ」プロセスをどのように実装するかです。トリガーまたはサーバー側のプロセスを介して自動的に、またはアプリケーション レベルでのユーザーの介入によってですか?

于 2008-08-21T12:36:42.430 に答える