EF批量插入数据耗时对比

Posted liuruitao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF批量插入数据耗时对比相关的知识,希望对你有一定的参考价值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF批量插入
{
    class Program
    {
        static void Main(string[] args)
        {
            TestEntities test = new TestEntities();
            DateTime time1 = DateTime.Now;
            for (int i = 0; i < 10000; i++)
            {
                User user = new User();
                user.Name = "测试" + i.ToString();
                test.User.Add(user);
                test.SaveChanges();
            }
    
            DateTime time2 = DateTime.Now;
            TimeSpan ts = new TimeSpan(time1.Ticks);
            TimeSpan ts2 = new TimeSpan(time2.Ticks);
            Console.WriteLine("不批量插入:"+( ts2-ts));

            //引入Z.EntityFramework.Extensions  批量插入
            DateTime time3 = DateTime.Now;

            List<User> list = new List<User>();
            for (int i = 0; i < 10000; i++)
            {
                User user = new User();
                user.Name = "测试" + i.ToString();
                list.Add(user);
            }
            test.BulkInsert(list);
            test.SaveChanges();

            DateTime time4 = DateTime.Now;
            TimeSpan ts3 = new TimeSpan(time3.Ticks);
            TimeSpan ts4 = new TimeSpan(time4.Ticks);
            Console.WriteLine("批量插入"+(ts4 - ts3));

            Console.ReadKey();

        }
    }
}

 

 

最终结果:  单个插入用时90秒。 批量插入不到3秒

 

以上是关于EF批量插入数据耗时对比的主要内容,如果未能解决你的问题,请参考以下文章

EF中的批量操作

如何使 eclipselink 在批量插入方面表现更好

EF 分页查询优化

.NET5必备工具——EF大数据批量处理----Bulk系列

关于excel导入数据到数据库的总结

php实现mysql百万级数据插入,耗时10s左右