不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
Entity Framework批量导入数据越来越慢解决方法
编辑:dnawo 日期:2012-11-25
之前有一些json数据保存在文本文件中,十几个文件,每个文件数据量差不多。昨天尝试用EF将这些数据导入到数据库,程序运行时发现处理每个文件所用的时间越来越长,代码简化如下:
为找出问题的原因,对代码稍做修改,记录下各个操作所用的时间:
输出文本:
引用内容
不明白为什么每千次Add的时间越来越长,换作List<VisitLog>.Add,每千次瞬间就能完成。
Entity Framework批量导入数据越来越慢解决方法
经dudu提示,对代码进行如下修改后运行正常:
复制内容到剪贴板
程序代码

using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
Console.WriteLine(i);
}
}
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
Console.WriteLine(i);
}
}
为找出问题的原因,对代码稍做修改,记录下各个操作所用的时间:
复制内容到剪贴板
程序代码

DateTime date1, date2, date3;
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int i = 0; i < 10; i++)
{
date1 = DateTime.Now;
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
date2 = DateTime.Now;
context.SaveChanges();
date3 = DateTime.Now;
System.Console.WriteLine("Add:{0},Save:{1}", (int)(date2 - date1).TotalMilliseconds, (int)(date3 - date2).TotalMilliseconds);
}
}
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int i = 0; i < 10; i++)
{
date1 = DateTime.Now;
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
date2 = DateTime.Now;
context.SaveChanges();
date3 = DateTime.Now;
System.Console.WriteLine("Add:{0},Save:{1}", (int)(date2 - date1).TotalMilliseconds, (int)(date3 - date2).TotalMilliseconds);
}
}
输出文本:

Add:907,Save:8909
Add:5640,Save:8702
Add:10734,Save:8752
Add:15841,Save:8695
Add:20978,Save:8754
Add:26066,Save:9053
Add:31178,Save:8597
Add:36250,Save:8639
Add:41369,Save:8728
Add:46564,Save:8698
Add:5640,Save:8702
Add:10734,Save:8752
Add:15841,Save:8695
Add:20978,Save:8754
Add:26066,Save:9053
Add:31178,Save:8597
Add:36250,Save:8639
Add:41369,Save:8728
Add:46564,Save:8698
不明白为什么每千次Add的时间越来越长,换作List<VisitLog>.Add,每千次瞬间就能完成。
Entity Framework批量导入数据越来越慢解决方法
经dudu提示,对代码进行如下修改后运行正常:
复制内容到剪贴板
程序代码

for (int i = 0; i < 10; i++)
{
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
}
}
{
using (DataAnalysisContext context = new DataAnalysisContext())
{
for (int j = 0; j < 1000; j++)
{
context.VisitLogs.Add(new VisitLog());
}
context.SaveChanges();
}
}
评论: 0 | 引用: 0 | 查看次数: 5724
发表评论
请登录后再发表评论!