我们决定对 Azure 数据库使用 micro-orm。由于我们的业务只需要“插入”和“选择”,我们决定禁止所有代码管理SqlTransaction
(数据没有并发问题)。
然后,我们注意到我们的 Azure 数据库实例响应非常缓慢。“ rpc completed ”事件发生的延迟是运行简单 sql 语句所需时间的数百倍。
接下来,我们使用 EF6 对我们的代码进行了基准测试,我们看到服务器响应非常快。由于 EF6 实现了一个内置事务,我们决定恢复SqlTransaction
micro-orm 上的 (ReadCommited),我们注意到一切都很好。
Azure 数据库是否需要显式SqlTransaction
(由代码管理)?对SqlTransaction
Azure 数据库性能有何影响?为什么以这种方式实施?
编辑:我将发布一些关于我们收集痕迹的方式的更精确的信息。似乎我们的 Azure 事件日志有时以纳秒为单位,有时以毫秒为单位。看起来很奇怪。