在天蓝色中插入数百万行

时间:2015-02-18 16:35:32

标签: azure-sql-database sql-insert

我目前正试图在azure表中插入大约1亿行。问题是每个插入所花费的时间比使用本地数据库要多得多。有没有办法以更及时有效的方式管理这项任务?

1 个答案:

答案 0 :(得分:1)

如果您正在逐行插入,那么效率会很低。另外两个选项是在c#代码(https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy(v=vs.110).aspx)中使用ADO.Net BULK API或使用BCP实用程序执行批量插入。这两种技术都将减少到数据库的往返次数,并避免每行高开销的日志操作。

请注意,Azure SQL DB尚未提供将文件上载到服务器并从那里导入的选项。 (但是,如果直接从内部部署到Azure DB的延迟仍然太长,则可以将平面文件移动到Azure存储Blob,并从Azure VM执行BCP或c#导入程序。)