sql-server - 分布式事务的性能开销

标签 sql-server performance transactions jta distributed-transactions

(当使用Atomikos测试分布式事务的实现时,我注意到了巨大的开销(使用XA花费30毫秒进行事务处理,而使用XA则花费了160毫秒)

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

在测试中,我使用了涉及单个数据源(Microsoft SQL Server)且没有实际更新的事务的(不现实)方案。我希望在这种情况下的开销最少。

所以我的问题是:


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

最佳答案

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

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

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

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

关于sql-server - 分布式事务的性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435139/

相关文章:

sql-server - SQL Server 中如何查找所有使用字段或表的地方

javascript 优化以避免函数上下文

node.js - 如何使用 llen 命令结果插入 rpush 的数据?

c# - 如何将 C# datetime 舍入到 datetime2(0)

sql-server - 如何跳过错误并继续运行SQL查询?

sql - sql server数据库中的主键数据类型

jquery - 更高效的 jQuery

performance - Tomcat 似乎只向套接字发送 64k,然后在发送下一个 64k 数据 block 之前等待确认

sql - 防止 SELECT 检索事务开始后提交的行

mysql - 新记录和多对多插入