2010-10-01 25 views
3

我们知道有一些场景要求我们在代码中实现交易,例如在.Net框架中使用SqlTransaction/TransactionScope。问题是:远离数据库实施交易有什么缺点?

  1. 什么是开销(除了 速度)?
  2. 如果我们在交易和 数据库之间添加更多 层,它会变得更糟吗?如果是的话,那么 的开销是多少以及是什么导致这些开销?

回答

1

我们希望保持交易简短,尽早开始并尽早结束交易。否则并发会受到影响,我们会得到更多的锁等待和死锁。

0

长时间运行事务也可能导致事务日志填满。

在事务和数据库本身之间添加更多层并不会增加事务开销,但会增加发生错误的可能性并导致事务未提交和长时间运行的事务。

+0

你指的是哪一层,怎么会增加出现错误的可能性? – 2011-10-16 20:23:41