5

我知道不建议使用实体框架进行批量插入,因为它会一一添加它们。(示例 1示例 2。

附加一个在其下方有一个大图形的对象怎么样,例如 100Ks 个对象?- 具体来说:

  • 使用 EF5 执行此操作有哪些(时间/内存)性能注意事项?
  • 是否有存储大图的最佳实践?
  • 关系数据库甚至是存储大型图形的好主意吗?

一点背景:

  • 该图是使用 EF5 POCO 创建的,然后附加到根并保存。图表始终是新数据,从不更新。我们使用的数据库是 SQL Server 2012。

  • 对于大型案例(100Ks 对象),实际创建过程可能需要数十秒,因此如果附加/保存过程占用 10% 的时间,则不会对整体时间性能产生重大影响。

4

1 回答 1

4

由于由于某种原因没有人回答,即使是这里众所周知的EF专家,那我就试着问一下。

最近,我处理了具有大量循环引用和实体之间关系数量的复杂模型。还有大量的数据,是的,和你的一样或者更大。我尝试了很多东西,但没有一个对我方便,所以我以使用Fastest Way of Inserting in Entity Framework结束。一年前它对我有很大帮助,而你在你的问题帖子中没有提到它。


但是,如果您在实体之间没有很多复杂的关系,并且一次插入大量全新数据,那么您已经提到的最快方法是SqlBulkCopy因为在这种情况下它非常快速和简单。
例如,使用 CodeFirst 方法,您可以首先创建数据库结构,然后简单地插入数据。

希望能帮助到你!无法猜测在您的情况下使用 NoSQL 存储是否会很快或方便,因为我从未使用过这些解决方案。可能有经验的同事会补充一些。

于 2013-06-27T19:56:29.223 回答