巨大なトランザクション・レコードを管理しますか?
質問
私は毎日、スケジュールし、別のデータベーステーブルからいくつかのデータを取得し、私のメインアプリケーションデータベースのテーブルにダンプされたアプリケーションは、この表は増加のレコード数を持っていると私はそれが、トランザクションイベントデータであるとして、それは日々成長すると仮定しますoccur.Thisデータが処理され、各レコードを、各レコードを受け取り、必要ない分析およびマークメインアプリケーションによる処理のために使用されていること。
私は将来的にダウンしたデータベースのサイズを維持できるように、ソリューションのどのような私が提供することができますか?
どのようにこのような状況でそれに行くか?
は、いくつかのエンタープライズアプリケーションの私の観察から、1はオプションを提供し、ユーザーができること アーカイブレコード「より古い60日には、」...私は、データベースからレコードをテキストファイルに処理されたレコードをアーカイブおよび削除するためのオプションを提供することができ、テキストfile.Wellに、テキスト・ファイルは、後で必要に応じてインポートすることができなど?これは、ソリューションですか?
解決
あなたは時折、プロセスを構築し、古いデータは、それをテキストにして、戻ってテキストから読み込むためにアーカイブすることにアクセスする必要がある場合は、おそらく素晴らしい解決策ではありません。ハードドライブは安いです。
あなたは、古いデータを集計できます。例えば、トランザクションデータは現在、ミリ秒の穀物である場合がありますが、古いデータをレポートするときには、一日でそれを得るし、「毎日」あなたのアーカイブ処理などにデータを集約することを検討してください。あなたは、毎日のためにわずか数に行数十万人を折りたたむことができるかもしれません。
また、あなたがうまくいけば、あなたは簡単に新しいディスクを追加し、それらのディスクにテーブルを作成することができ過程で、他のディスクに1つのディスクのセットと、アーカイブされたデータに最新のトランザクションを保つことができる優れたパーティションスキームを検討してください。
他のヒント
どのようなものがありますか?テキストファイルにアーカイブされたデータを削除すると、あなたが将来的にそのデータのオフに報告できるようにする必要がないと仮定すると、すべてが順調と良いです。ただし、テキストファイルでそれを持つことは、あなたがそれを必要とするときに、データベースへの要求に応じて、それをインポートするには、手動のプロセスを持っている必要がありますを意味します。
より良いオプションは、トランザクション処理(OLTP)のために使用されていないデータ・ウェアハウス・データベースにオフアーカイブデータを移動するために、その代わりに分析処理データベース(OLAP)の基礎として使用されるであろう。時間は、このアーカイブされたデータのオフ報告してくると、その準備ができて行きます。あなたは、このアーカイブデータベースのデータを構造化する方法については注意している場合は、そのデータのオフ報告より速く、より柔軟になりOLAPキューブ、にすべてのデータを集計することは非常に簡単なはずです。
しかし、再び...あなたはどこまで戻って行くかもしれない報告時のデータオフかどうか報告し、かどうかによって異なります。
これは、過去のデータに行われますどのくらいの分析に依存しないが、パフォーマンスが問題になることなくデータベースにすべてを維持する方法があります。
頭に浮かぶ解決策は、問題のテーブルを分割することです。私の会社は約20万行が含まれているそれぞれの月で仕切られたデータを、持っているデータベーステーブルを持っています。パーティショニングは、はるかに実用的で、それが単一のテーブルに格納された場合よりも、このデータを使用して行います。今、唯一の本当の制約は、それは、これらの日がいかに安い与えられた非問題であるディスク容量、である。
私はいくつかのデータベースはパーティショニングをサポートしていないこと、しかし、知っています。このような場合は、私が区切られたファイルにデータを格納することは、適切な解決策になると仮定します。
私見では、ユーザが過去のデータを分析する必要があるということですどのように可能性に依存します。それは可能性があります場合は、ちょうど良いのインデックスを作成し、メインのデータベース内のすべてのデータを保持します。
それはその後、ない場合はTXTにそれをドロップします。それが起こる時間はもちろん、設定にする必要があります。