0

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

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

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

+1

其中的一些可能并不适用于SQL Azure,但它们可能有助于阅读:http://dba.stackexchange.com/questions/16763/how-do-i-run-a-large-script- with-many-inserts-without-run-out-of-memory http://stackoverflow.com/questions/8635818/multiple-insert-statements-vs-single-insert-with-multiple-values/8640583#8640583 – 2012-07-18 17:49:47

回答

2

大容量复制API应该可以完美地满足您的需求,并可以显着提高性能。

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