0

1つの列にY/Nフラグがあるデータベーステーブルがあります。フラグが「N」であるすべてのレコードを読み取り、レコードを処理した後、そのレコードのフラグを「Y」に設定します。2つの別々の接続を使用してこれを同時に行うことは正しく、合理的ですか?または、最初にテーブル全体を読み取り、読み取りが完了した後にのみ更新する必要がありますか?これに対する正しいアプローチは何ですか?

重要な場合に備えて、関連するデータベースはNetezzaです。

4

2 に答える 2

1

主にあなたのデザインとニーズに依存します。

旗はどれくらい重要ですか?処理する前にすべてのフラグを設定したときに問題が発生した場合はどうなりますか...など。

2つの接続が必要な理由は私の理解ではありません。通常、1つの接続を開いたままにします。Netezzaのブロックはわかりませんが、一部のシステムでは、選択と更新を同時に行うこともできます。

あなたができること:

  1. 束をロードし、それらを処理してから、すべてのフラグを更新します。(最速、1つの失敗=すべての失敗)
  2. 束をロードし、1つを処理し、1つのフラグを更新し、次を処理します。
  3. それらを1つずつフェッチして更新します。(最も遅くなりますが、最も安全になります)
于 2012-02-23T18:41:06.767 に答える
1

最初に読んでから更新する必要があります。非同期ではありません。「選択」部分に時間がかかる場合は、バッチ処理を検討する必要があります。別の接続を使用することもできますが、読み取りが完了したことを確認する必要があります。

于 2012-02-23T18:42:23.540 に答える