0

基本的に、テーブル内のすべての値 (約 20k エントリ) に対して異なるパラメーターを使用してストアド プロシージャを呼び出す必要がある大規模なデータベースで行う作業があります。プロセス全体の実行にかかる時間、各ループに関連するそのテーブルまたは他のテーブルをブロックせずにこれを実行したいと考えています。SQL 内からトランザクションをカーソル上の個々のループに制限することは可能ですか?

プロセスが完了した後にループしているテーブルに変更があったかどうかを手動で確認し、新しいエントリに対して再度実行するのは非常に簡単なので、変更の追跡について心配する必要はありません。

4

2 に答える 2

0

20000レコードをループするのは悪い選択だと思います。ストアドプロシージャをセットベースのソリューションに置き換えることをお勧めします。カーソルの使用は避けてください。

于 2009-08-28T14:28:29.617 に答える
0

コミットされていない読み取りにトランザクション分離レベルを設定できます。ただし、ダーティ リード、失われた更新、ファントム更新などを取得できるため、それが本当に必要なものであることを確認してください....

于 2009-08-26T15:24:36.633 に答える