实体框架 - 添加 75k 行需要多长时间?

oje*_*jek 2 c# entity-framework

我有以下设置:

  • Table1 - 当前有 150k 行,需要添加另外 25k 行,
  • Table2 - 300k 行,需要另外添加 50k。

我在循环中添加行,如下所示(首先是 EF 代码):

using (var context = new MyDb())
{
  loop() //25k rounds
  {
    var t3 = new Table2();
    var t2 = new Table2();
    var t1 = new Table1{prop1 = t2, prop2 = t3};
    context.Table1.Add(t1);
    context.SaveChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,循环总共需要 25k 圈,我的性能测量显示,它将在大约10 小时内添加这些行!现在我不知道这是因为这是使用 EF 进行此类操作的正常时间,还是因为我的 dbms 有问题?

Mik*_*ate 5

看看这个类似问题的答案

插入实体框架的最快方法

问题是,每次循环时都会将更改保存到数据库,这会导致 25k 数据库写入,而不仅仅是一次