0

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

4

1 回答 1

1

这是否是一个问题取决于你需要多快。这里涉及的时间基本上是额外的 2 x {latency}(一个用于“begin”,一个用于“commit”/“rollback”),其中 {latency} 取决于您的网络,但通常约为 0.25ms;所以 - 称它为每次操作 0.5 毫秒。在大多数情况下,这 0.5ms 本身是无关紧要的,尤其是与实际的“做”代码相比。如果你去 DB 的次数足够多,这是一个重要的数字,那么我要改变的第一件事是:减少去 DB 的次数。

在大多数情况下,我不会过分担心这是否在 TSQL 与连接上实现:两者都可以,而且更容易确保基于连接的方法是可证明正确的。我在 TSQL 回滚代码中看到了很多错误......

要确定,您必须进行分析,但同样:请记住,时间通常是 a:孤立的(即不是每页 200 个,等等),和/或 b:被实际的“行为”淹没代码

于 2013-05-13T12:16:19.353 回答