SQL Serverのストアドプロシージャでは、一時テーブルを使用するタイミングとカーソルを使用するタイミング。パフォーマンスに関して最良のオプションはどれですか?
可能であれば回避ペストのようなカーソル。 SQL Serverはset-based --RBAR(row-by-agonizing-row)方式で行う必要があることはすべて遅く、遅くなり、SQLの動作の基本原則に反します。
あなたの質問は非常に曖昧です-その情報に基づいて、私たちはあなたが何をしようとしているのか本当にわかりません。ただし、主な推奨事項は変わりません。可能な場合は常に(ほとんどの場合可能です)、セットベースの操作を使用してください- SELECT, UPDATE, INSERT
andjoins-手続き的思考をSQLServerに強制しないでください-これは最善の方法ではありません。
したがって、セットベースの操作を使用して一時テーブルを埋めて使用できる場合は、毎回カーソルよりもその方法をお勧めします。
カーソルは行ごとに機能し、パフォーマンスは非常に低くなります。ほとんどの場合、それらはより良いセットベースのコードに置き換えることができます(通常は一時テーブルではありません)
一時テーブルは、データ量とそれらを使用して何をしているかに応じて、問題がない場合もあります。これらは通常、カーソルの代わりにはなりません。
これを読むことをお勧めします: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them