3

私たちのアプリケーション(予約/予約タイプ)では、単一のDBAuditテーブルを介してログデータを処理しています。

問題は、このテーブルのデータの増加により、それに基づいて生成されたレポートが「大幅に」遅くなっていることです。オプション(タイムプルーフ)は何ですか?

これらは有効な選択である可能性があります:

  1. 複数のテーブルでログを処理する
  2. 古いデータを定期的に自動削除
  3. 古いデータを他のアーカイブデータベースに移行する

巨大なアクティビティログを持つ他のアプリケーションはこれをどのように維持しますか?

4

2 に答える 2

3

データ内の重要なメトリックを頻繁に事前計算し、それらのメトリックに基づいてレポートを作成できます。

これにより、レポートに影響を与えることなく、古いログ データをデータ ウェアハウスにアーカイブできます。

于 2013-02-22T07:10:55.780 に答える
0

はい、これらはすべて適切なオプションであり、おそらくこれらすべてを実装しようとする必要があります。

  1. 複数のテーブルを介してログを処理します。最新のデータのみをメイン テーブルに保持し、後で履歴テーブルに移動することを検討してください。レポートを実行するために実際に必要なデータの量によって異なります。
  2. 古いデータを定期的に自動削除する - データを削除する前に、まずメトリックを計算することを検討します。より少ないスペースを消費するできるだけ多くの異なるメトリックを作成してみてください。データが処理されたら、結果を保持して実際のデータを削除してください。
  3. 古いデータを他のアーカイブ データベースに移行します。これは、データを削除する余裕がない場合にのみ行います。

これ以外に、最も使用されている列のレポート テーブルにインデックスを追加したり、クエリを可能な限り最適化したりすることをいつでも試すことができます。これらのテーブルに既にインデックスがある場合は、これらを定期的に再構築していることを確認してください。

于 2013-02-24T04:37:34.180 に答える