ときどき、ストアド プロシージャを実行して、2 つまたは 3 つの異なるテーブルのレコードのうち、いくつかの基準を満たすレコードの数を概算したいと考えています。この見積もり中に新しいレコードが追加、削除、または更新された場合、実際には問題はありません (大まかな見積もりが必要です)。つまり、 を使用してこのプロセスを実行する余裕がありますSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
。ただし、これについて 2 つの質問があります。
1) 命令だけを使用しているので、これらのステートメントをブロックSELECT COUNT(*)
でラップする必要は本当にありますか?BEGIN/COMMIT TRANSACTION
2)ストアドプロシージャSET TRANSACTION ISOLATION LEVEL READ COMMITTED
の最後に戻る必要がありますか、それとも実行が終了すると自動的に設定されますか?