【发布时间】:2017-01-18 16:57:07
【问题描述】:
我有一个实体实例,具有一对多关系(项目)。我正在尝试通过 Dapper 将其插入到 SQL Azure 实例中。
项目数约为 3.5k
using (var transaction = connection.BeginTransaction())
{
// (...) x inserted here, we want to insert the items next...
connection.Execute(TSQL_InsertStatement, x.Items, transaction);
transaction.Commit();
}
- 在本地(与 .\SQLEXPRESS 相比),执行时间约为 300-500[ms]
- 在 Azure 中,执行大约需要 8[s]
我相信此操作会产生大量单独的 INSERT,这可能是个问题。我尝试将其重构为“手动生成的 sql”解决方案,该解决方案生成了 4x INSERTS(1k、1k、1k、500 行),但是在本地执行此操作超过 2[s]。
- 有没有办法让 Dapper 运行得更快?可能像批量插入一样?
- SQL Azure 有什么我不知道的吗?喜欢一些隐藏的节流?
【问题讨论】:
-
本地与 Internet 可能不同
-
sql 数据库和执行插入的应用程序位于同一天蓝色区域 (dc)
-
循环运行一些测试插入,看看等待统计数据是什么
-
在 TVP SQLdataRecord 上搜索
标签: c# azure-sql-database dapper