カーソルの代わりに while ループを使用することをお勧めしますか?
カーソルの長所/短所は何ですか?
私はこのちょっとしたアドバイスに従っています:
[...] カーソルと WHILE ループのどちらが優れていますか? 繰り返しますが、それは本当にあなたの状況に依存します。ほとんどの場合、必要に応じてカーソルを使用してレコードをループします。カーソル形式は、私にとってはもう少し直感的です。構文を使用して結果セットを 1 回ループするだけなので、FAST_FORWARD カーソルを使用するのが理にかなっています。使用するカーソルのタイプは、ループ構造のパフォーマンスに大きな影響を与えることに注意してください。
— Tim Chapman による SQL Server 2008 でのカーソルと WHILE ループのパフォーマンスの比較
リンクされた記事には、各アプローチを実装する方法の簡単な例が含まれています。
これらの一部は DBMS によって異なりますが、一般的には次のとおりです。
長所:
行ごとの処理に関しては、ループよりも優れています。
大規模なデータセットでかなりうまく機能します
短所:
同様にスケーリングしないでください
より多くのサーバー リソースを使用する
tempdb の負荷が増加します
誤って使用すると、リークが発生する可能性があります (例: 対応するクローズなしで開く)
そのカーソル/whileループで何をしているのかお尋ねします。
データを更新または返す場合は、適切な WHERE 句を使用しないでください。カーソルを使うべきではないと言う人を知っています。