少しのアプリケーション設計に必要なアドバイス/提案。
私は2つのテーブルを使用するアプリケーションを持っています.1つはステージングテーブルで、多くの別々のプロセスが書き込みます.プロセスの「グループ」が終了すると、別のジョブが来て、結果をまとめて最終テーブルに集約し、それを削除します.グループ」をステージング テーブルから削除します。
私が抱えている問題は、ステージング テーブルがクリアされると、大量の REDO が生成され、データベースで多くの「ログ ファイルの同期」待機が発生することです。これは他の多くのアプリケーションとの共有データベースであり、これがいくつかの問題を引き起こしています。
集計を適用すると、ステージング テーブルの 20 行ごとに最終テーブルの行が約 1 行に減ります。
単一の「ステージング」テーブルではなく、「グループ」ごとにテーブルを作成することで、これを回避することを考えています。完了したら、このテーブルを削除するだけで済みます。これにより、再実行が大幅に少なくなるはずです。
私は SE しか持っていないので、パーティション分割されたテーブルはオプションではありません。また、やり直し用のより高速なディスクも、短期的にはおそらくオプションではありません。
これは悪い考えですか?提供されるより良いソリューションはありますか?
ありがとう。