【发布时间】:2014-02-13 19:15:34
【问题描述】:
我从第 3 方的网络服务接收大量数据并将其提取到我们的数据库中。
数据量将代表 100,000 行,每晚运行,需要在应用程序服务器上进行处理,然后才能插入/合并到我的 sql 数据库中。我想到了一些批量插入的选项。
- 实体框架 - 花费的时间太长,因为它似乎一次发送一个插入命令!
- StringBuilder 和 SqlCommand - 听起来更好
- 将我想要插入的对象列表的 XML 序列化发送到一个存储过程,该存储过程使用 nodes() 将所有值获取到 INSERT/MERGE。
我一直更喜欢数字 3 并多次使用它,但它似乎仍然令人不快,而且在 internetz 上似乎并不为人所知,所以想知道是否有其他人解决这个问题的新方法或标准方法。
顺便说一句,我使用 .NET 堆栈。
【问题讨论】:
-
您是否尝试过其中一种可用于数据加载的工具,例如 BULK INSERT、bcp、SSIS?它们已经存在很长时间了,可以在几分钟内处理数百万行。您提到的选项实际上被认为是不良做法
-
您能否指出我讨论为什么将 XML 方式视为实践的某个地方。我很感兴趣,因为我仍在使用它
标签: c# asp.net sql entity-framework ado.net