Entity Framework 批量插入

为什么80%的码农都做不了架构师?>>>   hot3.png

奋斗的小鸟——dogxuefeng

Entity Framework 批量插入很慢

Entity Framework 批量插入很慢吗?我自己测试下

前几天看到一篇文章里提到过,在批量插入时,需要加上Context.Configuration.AutoDetectChangesEnabled = false;

文章原话:EF默认会自动的跟踪数据的变化,当变更的数据量较大的时候,EF的跟踪工作量就会骤增,但指定操作变得非常缓慢(这也是部分同学怀疑EF的性能问题的一个怀疑点),其实,只要在批量操作的时候把自动更新关闭,即可解决缓慢的问题。

大家自己去看看:http://www.cnblogs.com/guomingfeng/archive/2013/05/28/mvc-ef-repository.html 由于没测试,所以不知道结果是不是变快,快多少

结果早上发现首页一个测试Entity Framework的文章,http://www.cnblogs.com/newton/archive/2013/06/06/3120497.html 说EF性能不行,正好没加这句,我也好奇,所以自己测试下,写这个文章不是针对作者,只是自己好奇,互相讨论

测试结果

Context.Configuration.AutoDetectChangesEnabled = false 时,果然是拖拉机变灰机啊。。。

不知道这样测试对不对,反正确实快了不少

后台代码

复制代码

public ActionResult Index(int args, string check){int count = args;EF_Test test = new EF_Test();Random ra = new Random();System.Text.StringBuilder result = new System.Text.StringBuilder();var now1 = DateTime.Now.TimeOfDay;result.Append(string.Format("<p>{0}开始将数据Add到上下文中,数据量:{1}</p>", now1, count));if (check != null){db.Configuration.AutoDetectChangesEnabled = false;db.Configuration.ValidateOnSaveEnabled = false;}for (int i = 0; i < count; i++){test = new EF_Test();test.Name = "linfei";test.Date = DateTime.Now;test.RandomNum = ra.Next(1, 10) * 100;db.EF_Test.Add(test);}var now2 = DateTime.Now.TimeOfDay;result.Append(string.Format("<p>{0}数据Added完毕,开始执行Insert操作,耗时{1}</p>", now2, now2 - now1));result.Append(string.Format("<p>AutoDetectChangesEnabled 状态:{0}</p>", db.Configuration.AutoDetectChangesEnabled));try{db.SaveChanges();}finally{db.Configuration.AutoDetectChangesEnabled = true;db.Configuration.ValidateOnSaveEnabled = true;}var now3 = DateTime.Now.TimeOfDay;result.Append(string.Format("<p>{0}Insert完毕,耗时{1}</p>", now3, now3 - now2));ViewBag.result = result.ToString();return View();}

复制代码

分类: C#

绿色通道: 好文要顶 关注我 收藏该文与我联系

dogxuefeng
关注 - 3
粉丝 - 9

+加关注

0

0

(请您对文章做出评价)

« 上一篇:oracle获取本月第一天和最后一天及Oracle trunc()函数的用法
» 下一篇:C#关于日期月天数和一年有多少周及某年某周时间段的计算

posted on 2013-06-07 12:25 dogxuefeng 阅读(422) 评论(0) 编辑 收藏

刷新评论刷新页面返回顶部

发表评论

昵称:

评论内容:

引用粗体链接缩进代码图片

注销 订阅评论

[使用Ctrl+Enter键快速提交]

博客园首页博问新闻闪存程序员招聘知识库

最新IT新闻:
· 亚马逊FirePhone5天初体验 有亮点但缺陷太多
· 中兴上半年售出2800万台智能机 4G手机过半
· OculusVR开始交付350美元虚拟现实头盔
· 联想用“新板凳”登陆物联网战场
· 微软砍掉 McLaren 之后,需要一个 Lumia 925 继任者
» 更多新闻...

最新知识库文章:

· 我眼里的DBA
· 面向对象设计的设计原则
· 前端工程与性能优化
· 百度员工离职总结:如何做个好员工?
· 程序员的工作不能用“生产效率”这个词来衡量

» 更多知识库文章...

Powered by:
博客园
Copyright © dogxuefeng

<
2013年6月
>







26
27
28
29
30
31
1

2
3
4
5
6
7
8

9
10
11
12
13
14
15

16
17
18
19
20
21
22

23
24
25
26
27
28
29

30
1
2
3
4
5
6

导航
  • 博客园
  • 首页
  • 新随笔
  • 联系
  • 订阅订阅
  • 管理
统计
  • 随笔 - 41
  • 文章 - 0
  • 评论 - 12
  • 引用 - 0
公告

昵称:dogxuefeng
园龄:3年4个月
粉丝:9
关注:3

+加关注

搜索
常用链接
  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论
  • 我的标签
随笔分类(40)
  • ASP.NET(3)
  • C#(20)
  • DEV第三方控件(6)
  • oracle(11)
随笔档案(41)
  • 2013年12月 (1)
  • 2013年6月 (7)
  • 2013年3月 (3)
  • 2013年1月 (4)
  • 2012年12月 (1)
  • 2012年11月 (7)
  • 2012年10月 (2)
  • 2012年9月 (4)
  • 2012年8月 (5)
  • 2012年7月 (1)
  • 2012年6月 (2)
  • 2012年4月 (4)
最新评论
  • 1. Re:DEV ComBoxEdit实现模糊检索数据
  • 哪里下载?
  • --gaofq
  • 2. Re:DEV ComBoxEdit实现模糊检索数据
  • @dogxuefeng
    呵呵,我有些地方弄错了,改过来就没问题了。
  • --小小程序媛
  • 3. Re:DEV ComBoxEdit实现模糊检索数据
  • @dogxuefeng嗯,我是在comboBoxEdit的TextChange()事件里触发模糊查询这段代码的,所以好像不能避免我说的那个情况。我现在把代码写在keyup()事件里了,情况有改进,但还是有点问题。如果我的输入法是搜狗的,它还是像以前那样,如果我把输入法切换成美式键盘的输入法就没问题了......
  • --小小程序媛
  • 4. Re:DEV ComBoxEdit实现模糊检索数据
  • @小小程序媛这个控件确实有自带的模糊查找功能,但是你说的那个问题我觉得不会,他只是显示出来,但是下拉后任会把其他符合条件的数据显示在下拉中,其实你只要加一行代码,输入的值改变时,展示所有满足条件的item就行了...
  • --dogxuefeng
  • 5. Re:DEV ComBoxEdit实现模糊检索数据
  • comboBoxEdit模糊查询,即使你不写这个方法,它也会有一个自带模糊查询的效果。比如你comboBoxEdit控件里有以下几个值,分别是:b001,b002,A001,b20k;在你没写自定义模糊查询方法时,你输入一个b,它会自动带出b001显示在控件上,只能是输入首位字符的时候才有这个效果。......
  • --小小程序媛
阅读排行榜
  • 1. Oracle——distinct的用法(13082)
  • 2. DEV ComBoxEdit实现模糊检索数据(2178)
  • 3. C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)(1341)
  • 4. RDLC子报表用法(1282)
  • 5. C# Excel数据转化为Datatable(1195)
评论排行榜
  • 1. DEV ComBoxEdit实现模糊检索数据(9)
  • 2. Oracle——distinct的用法(2)
  • 3. RDLC子报表用法(1)
推荐排行榜
  • 1. DEV ComBoxEdit实现模糊检索数据(2)
  • 2. C# Excel数据转化为Datatable(1)
  • 3. C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)(1)
  • 4. C# 将内存中的datatable数据导出为Excel(方法二,创建Excel对象导出)(1)
  • 5. Oracle——distinct的用法(1)

转载于:https://my.oschina.net/wzzz/blog/294688

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL分页limit速度太慢优化方法

当一个表数据有几百万的数据时&#xff0c;分页的时候成了问题如 select * from table limit 0,10 这个没有问题 当 limit 200000,10 的时候数据读取就很慢&#xff0c;可以按照一下方法解决最近一个网站的服务器评论被人刷死&#xff0c;导致mysql数据库异常发生too many open…

数据结构之求二叉树的所有叶子和以及叶子总数

1、题目 数据结构之求二叉树的所有叶子和以及叶子总数 2、代码实现 tree.java package leetcode.chenyu.test;public class Tree {int val;Tree left;Tree right;Tree(int val) {this.val = val;} } package leetcode.chenyu.test;public class TreeTest {public stat…

华为手机Android系统优缺点,第一次安卓机优缺点总结(对比iOS系统)

这次老婆换了x,换下来的7我都没用到&#xff0c;被丈母娘用了&#xff0c;我看着手上的6p&#xff0c;狠心换了华为Mate10Pro(6g,64g)。其实在一年前就开始关注华为的手机&#xff0c;对齐的性能了解主要来自网络媒体&#xff0c;外观认识主要来自身边朋友。从iOS转变到安卓&am…

DEV-aspxgridview中的aspcheckbox

checkbox可以所以点击修改 例子演示&#xff1a;http://codecentral.devexpress.com/E2313/ 源程序&#xff1a;https://www.devexpress.com/Support/Center/Example/Details/E2313 表头可以全选所有的checkbook 具体演示如下&#xff1a;http://codecentral.devexpress.com/…

HDS业务定义永续IT架构

永续IT架构的出现并不是以取代原有设备为目的&#xff0c;而是帮助用户循序渐进地向新一代IT架构迁移。在HDS的手中&#xff0c;软件定义存储、对象存储等都成了保障业务永远在线的利器。技术创新固然可喜&#xff0c;但是最先进的技术不一定能直接带来企业收入的增加&#xff…

FreeBSD大败局

文 | 肖滢&lola策划 | lola出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;看过上一篇文章《还有人记得 Linux 之前&#xff0c;那个理想又骄傲的 BSD 吗&#xff1f;》的读者都知道&#xff0c; BSD 是 Unix 最重要的一个开源分支&#xff0c;这一本…

java文字特效

立体效果的文字 主要使用了Graphics类中的setFont和setColor的方法&#xff0c;绘制多层字然后加上平移一个坐标即可实现多重叠加的效果,让人看起来就像是立体一样,详情请见源码 阴影效果的文字 和面一样&#xff0c;只是平移的方式有些不同&#xff0c;详情请见源码 倾斜效果的…

Android之如何判断设备是平板还是手机

1、判断方法 public static boolean isTablet(Context context) {return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) > Configuration.SCREENLAYOUT_SIZE_LARGE;} 2、layout-port 和layout-land区别 layout-po…

html拖放数据库字段,HTML5 拖放(Drag 和 Drop)

拖放是一种常见的特性&#xff0c;即抓取对象以后拖到另一个位置。在 HTML5 中&#xff0c;拖放是标准的一部分&#xff0c;任何元素都能够拖放.#div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}function allowDrop(ev){ev.preventDefault();}function…

( function(){…} )()

javascript和其他编程语言相比比较随意&#xff0c;所以javascript代码中充满各种奇葩的写法&#xff0c;有时雾里看花&#xff0c;当然&#xff0c;能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。 ( function(){…} )()和( function (){…} () )是两种jav…

谈谈 css 的各种居中——读编写高质量代码有感

css 的居中有水平居中和垂直居中&#xff0c;这两种居中又分为行内元素居中和块级元素居中&#xff0c;不同的居中用不同方法。 水平居中 1、行内元素水平居中&#xff08;文本&#xff0c;图片&#xff09; 给父层设置 text-align:center; 可以实现行内元素水平居中。 <!DO…

.NET遗留应用改造——性能优化篇

由于各种原因我们总是要与公司各种老项目打交道。天有不测风云&#xff0c;谁也不知道这坨屎山会从哪个方向把你的嘴塞的满满的&#xff0c;还不让你吐出来。既然如此...那只能细嚼慢咽的吞下去吧。说实在话&#xff0c;只要业务不死&#xff0c;那些老大伯项目就还有价值。更何…

《杀死一只知更鸟》读后感

今天我看完了这本书&#xff0c;从中我学到真正的勇敢不是一个人手握枪支&#xff0c;是当你还未开始就已知道自己会输&#xff0c;可你依然要去做&#xff0c;而且无论如何都要把它坚持到底。以前我总认为一个人敢动手就是勇敢&#xff0c;我发现我错了&#xff0c;我需要慢慢…

华为西安工业大学鸿蒙,培养百位将领、19位院士,这所211大学被誉为“华为人的母校”...

在社会上&#xff0c;985工程重点大学认可度是普遍要比211工程大学高的&#xff0c;并且985工程大学实力也比较强。但比较例外的是&#xff0c;华为这个让国人骄傲的企业&#xff0c;对一个211工程大学青睐程度却超过了绝大部分985工程大学&#xff0c;这所211大学甚至还被誉为…

Android Studio之Instant Run requires ‘Tools | Android | Enable ADB integration‘ to be enabled解决办法

1、问题 Android studio运行项目时候出现这个提示 Instant Run requires Tools | Android | Enable ADB integration to be enabled 2、原因 由于新版本中的Instant Run &#xff08;即时运行&#xff09;引起的 官方介绍 即使运行 https://developer.android.com/studio/r…

C# 11 预览,又增加了实用的语法糖

文 | 罗奇奇出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;.NET 首席项目经理凯瑟琳在博客中介绍了 C# 11 的一些预览性新功能&#xff0c;这些功能可以在 Visual Studio 17.1 和 .NET SDK 6.0.200 中体验&#xff0c;下面摘录一部分新特性作介绍&#…

css 中图片旋转,倾斜,位移,平滑

在开发中&#xff0c;我们常常需要对图片有一些绚丽的效果&#xff0c;比如是图片旋转&#xff0c;平移&#xff0c;倾斜等。其实这些在css3中都已经存在&#xff0c;整理下作为demo&#xff0c;以后参考使用&#xff0c;也希望供大家交流学习。如果不足&#xff0c;多多指导。…

java程序

This XML file does not appear to have any style information associated with it. The document tree is shown below.博客园_首页代码改变世界uuid:5de59c50-a92f-4447-96ed-ab86451ed183;id61182014-07-27T11:59:08Zfeed.cnblogs.comhttp://www.cnblogs.com/jianyus/p/386…

android 网卡监听,Android实时监听网络的变化

4中情况。1.无网 2.wifi 3.移动信号 4.网线BroadcastReceiver netReceiver new BroadcastReceiver(){Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {Con…

深入理解加密、解密、数字签名(签名证书、加密证书)的组成和数字证书

深入理解加密、解密、数字签名和数字证书 随着电子商务的迅速发展&#xff0c;信息安全已成为焦点问题之一&#xff0c;尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动&#xff0c;公开密钥基础设施&#xff08; PKI, Public …