1

1 か月の間に、プロセスによって一部のデータベース テーブルに最大 1M の行が大量に挿入されます。
これは毎日発生し、プロセス全体が約 40 分続きます。それは結構です。
データをすばやくクエリできるように、これらの挿入からいくつかの「集計テーブル」を作成しました。これはうまくいきます。

問題: サマリー テーブルにデータを挿入し続けるため、キャッシュ テーブルを作成する時間が実際のデータを挿入するプロセスと一致し、これで問題ありません。ただし、前日に挿入されたデータが (何らかの更新により) 変更された場合、前日を「再計算」する必要があり、これを解決するには、今日の要約データを毎日作成する代わりに、プロセスを変更して要約を再作成する必要があります。つまり、実行時間が大幅に増加します。
この問題に対処する標準的な方法はありますか?

4

1 に答える 1

0

私たちのシステムにも同様の問題があり、毎日の要約を保持する要約テーブルを生成することで解決しました。

UPDATE/がベース テーブルを変更するたびにINSERT、サマリー テーブルが更新されます。もちろん、これらの操作は遅くなりますが、サマリー テーブルは完全に最新の状態に保たれます。

これは を使用して実行できますTRIGGERが、操作は 1 か所で行われるため、手動でTRANSACTION.

このアプローチの利点の 1 つは、サマリー テーブルを更新/作成するために cron ジョブを実行する必要がないことです。

これがお客様の状況に適用できない/実行できない可能性があることを理解しています。

于 2014-07-17T13:22:43.877 に答える