2

RealTimetableとしてテーブルがあり、HistoryTableとして別のテーブルがあります。これで、RealTimetableとHistoryTableは同じ構造になります。RealTimetableからHistoryTableにデータを複製してから、毎日RealTimetableからデータを削除するプロセスが必要です。リアルタイムテーブルが大きくなりすぎることはないため(アプリケーションのダウが大幅に遅くなります)、記録と履歴の目的でリアルタイムテーブルのすべてのデータを保持する必要があるため、これらのデータをHistoryTableに保持します。

リアルタイムテーブルは1日に60,000〜100,000回以上挿入されるため、トリガーとレプリケーションはこのシナリオでは最適なソリューションではありません。どちらかを設定すると、データベースに大きなオーバーヘッドが発生しますね。

私は、HistoryTableにないデータを毎日realtimetableからHistoryTableに挿入し、15分前までのデータの挿入プロセス後にrealtimetableからデータを削除するspを持っていると考えました(データがに書き込まれる可能性があるため)挿入プロセスと削除プロセスの間のリアルタイムテーブル)。これらのデータを失いたくないのですが、これはちょっと汚い方法です。

私のシナリオで機能する代替ソリューションを提案してください。

4

1 に答える 1

0

これを行うためのクリーンな方法はありません。基本的には、すべてのデータを1つのテーブルに保持できないという点で、混乱をハッキングしています。

私は単純なことから始めて、あるテーブルから別のジョブバイに移動し、それがどれだけうまくいくかを確認してから、まだ存在していない問題の複雑なアルゴリズムを構築し始めました。

とにかく、履歴を入力するトリガーは使用しません。履歴テーブルのレポートが遅いと、リアルタイムへの挿入がブロックされます。これはおそらく最後に必要なことです。

ライブデータを永続化するためにSQLが最良の選択であるかどうかを検討しましたか?あなたがそこにあるものを「ただ」バタバタしているので、それを失わないのであれば、SQLからほとんど得られていません。

于 2013-01-02T23:50:12.597 に答える