3

私はSQLトランザクションをAPPLOCKSおよびその他の同時実行メカニズムのコンテナーとして使用しているため、データを読み取るだけで書き込みを行わないさまざまな分離レベルでトランザクションを作成することがあります。これらの状況では、論理的には COMMIT と ROLLBACK の結果は同じであると私は信じています。

パフォーマンス上の理由から、サーバーが実行するのにどちらが安価/高速か知りたいですか? COMMIT ケースに最適化された避けられないブックキーピングと、書き込みがない場合でも ROLLBACK の追加オーバーヘッドが必要ですか? いずれの場合もロックは解除されます。

それが問題にならない場合は、.NET TransactionScope コードに不必要なコードを散らかす必要scope.Complete()はありません。そうでなければ、明らかに読み取り専用の操作のコードを確認するときに躊躇する可能性があります。

ありがとう!

4

1 に答える 1

4

何も書いていないので、トランザクションを閉じるだけでなく、持っていた可能性のあるロックも解放するため、コミットする必要があります。技術的にはロールバックも同じことを行いますが、コミットは常にロールバックよりも高速です。

于 2013-08-27T19:09:08.057 に答える