如何在c#中优化LinqToSQL

Gra*_*ant 0 c# optimization linq-to-sql

我试图使用linq2sql更新SQL 2005中的表中的大约150,000条记录.说到xx.SubmitChanges(),它需要大约45分钟.

我在四核PC上运行sql作为本地实例.

有谁知道为什么这么长时间?或者这是正常的吗?

代码示例:

var y = db.x.Where(j => j.NumberOfOrders > 0).Select(k => k);

foreach (var item in y)
{
    try
    {
        item.k = "bla";
    }
    catch (Exception ex)
    {
        //
    }
}

db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

ani*_*key 5

这将花费很多时间在linq中没有批量插入到sql.在这种情况下,它将逐个插入到您的上下文中,最后当您调用SubmitChanges()时它会在数据库中保存.因此需要时间.

如果你有150,000条记录的大记录.最好在sql中使用批量插入.这只需要几分之一秒才能插入.