分布式事务的性能开销

时间:2011-09-15 17:38:25

标签: sql-server performance transactions jta distributed-transactions

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

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

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

所以我的问题是:

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

1 个答案:

答案 0 :(得分:1)

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

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

您可以自己测试一下。如果不关闭应用程序,请调用两次交易。

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