2

我正在使用sql事務作爲APPLOCKS和其他併發機制的容器,所以我有時會在不同的隔離級別創建只讀取數據而不寫入的事務。我相信,在這些情況下,邏輯上,COMMIT和ROLLBACK具有相同的結果。對於更便宜/更快的無寫事務:COMMIT或ROLLBACK?

由於性能方面的原因,我想知道哪一個更便宜/更快的服務器執行?是否需要針對COMMIT案例進行優化的不可避免的簿記和即使沒有寫入也會產生額外的ROLLBACK開銷?無論哪種情況,鎖都將被釋放。

如果沒關係,那麼我不必在不必要的scope.Complete()上亂寫我的.NET TransactionScope代碼,這可能會讓我猶豫在查看其他明顯只讀操作的代碼時。

謝謝!

回答

4

由於您沒有寫任何東西,因此除了關閉事務之外,還應該執行Commit操作,同時還釋放您可能擁有的任何鎖。雖然技術上回滾也會這樣做,但Commit總是比回滾更快。

+0

謝謝索南。這也是我的假設,但是你有任何文檔或任何支持它的東西嗎? –

+2

http://dba.stackexchange.com/questions/5233/is-rollback-a-fast-operation – Sonam

相關問題