カーソルとwhileループ-カーソルの利点/欠点は何ですか?
-
02-07-2019 - |
質問
カーソルの代わりにwhileループを使用するのは良い考えですか?カーソルの長所と短所は何ですか?
解決
これらの一部はDBMSに依存しますが、一般的には:
長所:
-
行ごとの処理に関しては、ループを実行します
-
大規模なデータセットで十分に動作します
短所:
-
同様にスケーリングしない
-
より多くのサーバーリソースを使用
-
tempdbの負荷を増やす
-
誤って使用すると、リークが発生する可能性があります(たとえば、対応する閉じることなく開く)
他のヒント
私はこのアドバイスに従っています:
[...]優れている:カーソルまたは ループしながら?繰り返しますが、それは本当に依存します あなたの状況に。私はほとんど常に使用します ときにレコードをループするカーソル 必要。カーソル形式は 私にとってもう少し直感的で、 構造を使用して 結果セットを1回ループします。 FAST_FORWARDを使用する意味があります カーソル。のタイプを覚えておいてください 使用するカーソルは大きな影響を与えます ループのパフォーマンスについて 構成します。
— SQL Server 2008でのカーソルとWHILEループのパフォーマンスの比較
リンクされた記事には、各アプローチの実装方法の簡単な例が含まれています。
そのカーソル/ whileループで何をしているのか尋ねます。
データを更新または返す場合、適切なWHERE句を使用しないでください。カーソルを使用しないでくださいと言う人を知っています。
所属していません StackOverflow