3

(在使用 Atomikos 测试分布式事务的实现时,我注意到开销很大(不使用 XA 需要 30 毫秒的事务使用 XA 需要 160 毫秒)

看起来大部分时间都花在“准备”和“提交”上。

对于测试,我使用了涉及单个数据源(Microsoft SQL Server)的事务的(不切实际的)场景,没有实际更新。在这种情况下,我希望开销最小。

所以我的问题是:

  • 这是“正常”开销吗?
  • 如果没有,我接下来应该去哪里看?(我最好的猜测是使用 SQL Server Profiler 来查看时间是否花费在数据库中)
4

1 回答 1

1

据我所知,这种漫长的等待只发生在您第一次使用交易时。

发生这种情况是因为建立了与服务器的连接以启动事务。第一次之后,每次调用 OpenTransaction 应该不会花费那么长时间。

你可以自己测试一下。在不关闭应用程序的情况下,调用事务两次。

当然会存在一些开销,因为当您使用分布式事务时,您提交数据两次或更多取决于您使用的服务器数量(每个服务器一次)。但它不应该像你描述的那么长。

于 2011-09-16T18:47:32.113 回答