日期:2014-05-20  浏览次数:20822 次

通过ADO.NET实体模型向mysql数据库插入数据速度过慢!!!
因为用实体模型来操作比较方便,表间关系什么的都不用自己定义了。

但是因为数据量相当大,总共有几百万条数据,实际使用过程中发现插入数据过慢,一小时主表才插入一万四五千条数据,照这个速度,要120+小时才能完成……

我上网搜相关解释,感觉应该是这个原因:http://rritw.com/a/bianchengyuyan/PHP/20130607/365866.html,即每次Add之前,EF都会调用DetectChanges。但是按照帖子中的解决方案,我没有点出Configuration.AutoDetectChangesEnabled这个属性设置。

前面说了,因为存在主表和子表的主外键关系,所以实际操作中插入数据只能是按“主表数据(一条)-->该数据对应的子表数据-->主表数据(一条)……”的流程来进行。

找了很久也没找到其他合适的方案,所以上来问问,这种情况下,如果坚持要用ADO.NET实体模型,该怎么处理?或者不用的话,有没有什么更优化的方案呢?
------解决方案--------------------
看这个帖子的8楼 http://bbs.csdn.net/topics/390543833?page=1#post-395266181  用sqlbulkcopy