在ado.net代码中实现事务控制是否会对性能产生影响?

时间:2013-05-13 12:06:58

标签: c# sql-server-2008 c#-4.0 ado.net

我应该调整一个.net应用程序,开发人员在ado.net中实现了事务控制,即使是使用单个sql命令的连接也是如此。 就个人而言,我在这种情况下避免使用ado.net事务控制,并在db端实现它。我相信除了sql命令之外,每个ado.net事务控制命令都会调用db,这会导致性能下降。 我理解后端,两者都是等价的。我想知道这是一个问题,如果是,那么有多重要。

1 个答案:

答案 0 :(得分:1)

是否是一个问题取决于你需要多快。这里涉及的时间基本上是额外的2 x {延迟}(一个用于“开始”,一个用于“提交”/“回滚”),其中{延迟}取决于您的网络,但通常< / em>约0.25ms;所以 - 每次操作称它为0.5ms。在大多数情况下,这个0.5毫秒本身是无关紧要的,特别是与实际的“做”代码相比。如果你正在为数据库做足够的访问,这是一个重要的数字,那么我要改变的第一件事就是:减少前往数据库的次数。

在大多数情况下,我不会过分关注这是在TSQL中实现还是在连接上实现:要么可以工作,要么更容易确保基于连接的方法可证明是正确的。我在TSQL回滚代码中看到了很多错误......

要确定,你必须要进行描述,但请再次注意:请记住,时间通常是:隔离(即每页不是200,等等),和/或b:被实际淹没“做”代码