2010-10-01 26 views
3

我們知道有一些場景要求我們在代碼中實現交易,例如在.Net框架中使用SqlTransaction/TransactionScope。問題是:遠離數據庫實施交易有什麼缺點?

  1. 什麼是開銷(除了 速度)?
  2. 如果我們在交易和 數據庫之間添加更多 層,它會變得更糟嗎?如果是的話,那麼 的開銷是多少以及是什麼導致這些開銷?

回答

1

我們希望保持交易簡短,儘早開始並儘早結束交易。否則併發會受到影響,我們會得到更多的鎖等待和死鎖。

0

長時間運行事務也可能導致事務日誌填滿。

在事務和數據庫本身之間添加更多層並不會增加事務開銷,但會增加發生錯誤的可能性並導致事務未提交和長時間運行的事務。

+0

你指的是哪一層,怎麼會增加出現錯誤的可能性? – 2011-10-16 20:23:41