有一些员工细分任务导致需要插入SQL Azure的大量记录(大约2000个)。记录本身非常小,约为4个整数。 Azure辅助角色执行分段任务,并将结果行插入SQL Azure表。队列中可能有多个这样的任务(每个任务大约有1000-2000行),因此每个插入都需要非常快速地执行。

使用本地计算机进行SQL Azure的时间测试花费了大量时间(1000个插入大约需要2分钟)。这可能是由于网络延迟造成的。我假设来自worker角色的插入应该快得多。

但是,由于实体框架不能很好地批量插入,我们考虑使用SQLBulkCopy。如果批量大小为1000,那么使用SQLBulkcopy会导致查询被限制吗?有没有推荐的方法?

一般承认的答案

批量复制API应该完美地满足您的目的,并带来非常显着的性能提升。

我已经测试过将1000万个批量大小为2000的记录插入到Azure数据库中,并且当从本地计算机运行时,每个批次的性能都没有出现约10秒的限制。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因