通常の JDBC 接続を使用してアプリケーションを開発しています。このアプリケーションは、Java-Java EE SpringsMVC 3.0 と SQL Server 08 をデータベースとして開発されています。非主キー列に基づいてテーブルを更新する必要があります。
ここで、テーブルを更新する前に、テーブルを更新する方法を決定する必要がありました。これは、テーブルに大量のデータが含まれている可能性があるためです。更新クエリはバッチで実行され、システム リソースを占有しないようにアプリケーションを設計する必要があります。
ここで、アプローチのいずれかを決定する必要がありました
。1.更新する前にデータを選択するか、
2.データを更新してから不足しているデータを選択します。
- 更新前にデータを選択することは、失敗の可能性が最大の場合にのみ有益です。つまり、バッチ 100 クエリ更新が実行され、そのうち 20 行のみが正常に更新された場合、このアプローチを採用する必要があります。
- データを更新してから欠落データをチェックすることは、失敗の記録がはるかに少ない場合にのみ有効です。このアプローチにより、1 つのデータベースの select 呼び出しを回避できます。つまり、バッチ更新の後、更新されたレコードの数を取得でき、クエリの番号と一致しないカウントがある場合に限り、select クエリを実行する必要があります。
本番環境のシステムについてはまったく知りませんが、あらゆる可能性に対抗し、より高速なシステムが必要です。どちらがより良いアプローチなのか、あなたの意見が必要です。