0

次の要件があります-

1.テーブルを
クエリし、何らかの条件に一致する約2万行を選択する必要があります。
2.これらのレコードを処理し、いくつかのフィールドを変更します。
3.変更されたレコードで同じテーブルを更新します。

マルチスレッドを使用して SELECT、PROCESS、および UPDATE レコードをバッチ処理するにはどうすればよいですか? ベストプラクティスはありますか? 使用する最適な糸数は? 代替アプローチはありますか?

! 使用される行は互いに独立しています

4

1 に答える 1

0

もちろん、処理している行が互いに完全に独立していない限り、並行スレッドでの処理はおそらくパフォーマンスに悪影響を与えることに気付くでしょう。

右?

とにかく、私の最善のアドバイス:

1)絶対に必要な場合を除き、複数のスレッドを使用しないでください

2)それでも、「バッチ」が独立していない限り、複数のスレッドを使用しないでください(1つのバッチ内で、別のバッチが保持するロックを待機する必要はありません)

3) 単一のバッチとして、クエリ、処理、および更新を一緒に実行します。

...そして、最も重要な...

4) 可能な限りストアド プロシージャを使用します。

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0007033.htm

于 2012-04-14T05:40:53.443 に答える