gpt4 book ai didi

c# - 如何加速 DbSet.Add()?

转载 作者:IT王子 更新时间:2023-10-29 04:10:20 26 4
gpt4 key购买 nike

我必须将大约 30k 行从 CSV 文件导入到我的 SQL 数据库中,很遗憾,这需要 20 分钟。

使用探查器进行故障排除显示 DbSet.Add 花费的时间最多,但为什么呢?

我有这些 Entity Framework 代码优先类:

public class Article
{
// About 20 properties, each property doesn't store excessive amounts of data
}

public class Database : DbContext
{
public DbSet<Article> Articles { get; set; }
}

对于 for 循环中的每个项目,我都这样做:

db.Articles.Add(article);

我在 for 循环之外:

db.SaveChanges();

它连接到我的本地 SQLExpress 服务器,但我想在调用 SaveChanges 之前没有任何写入,所以我想服务器不会是问题....

最佳答案

根据 Kevin Ramen 的评论(3 月 29 日)我可以确认设置 db.Configuration.AutoDetectChangesEnabled = false 会在速度上产生巨大差异

默认情况下,对 2324 个项目运行 Add() 在我的机器上运行 3 分 15 秒,禁用自动检测导致操作在 0.5 秒内完成。

http://blog.larud.net/archive/2011/07/12/bulk-load-items-to-a-ef-4-1-code-first-aspx

关于c# - 如何加速 DbSet.Add()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com