通过ADO.NET实体模型向mysql数据库插入数据速度过慢!!!
因为用实体模型来操作比较方便,表间关系什么的都不用自己定义了。
但是因为数据量相当大,总共有几百万条数据,实际使用过程中发现插入数据过慢,一小时主表才插入一万四五千条数据,照这个速度,要120+小时才能完成……
我上网搜相关解释,感觉应该是这个原因:http://rritw.com/a/bianchengyuyan/PHP/20130607/365866.html,即每次Add之前,EF都会调用DetectChanges。但是按照帖子中的解决方案,我没有点出Configuration.AutoDetectChangesEnabled这个属性设置。
前面说了,因为存在主表和子表的主外键关系,所以实际操作中插入数据只能是按“主表数据(一条)-->该数据对应的子表数据-->主表数据(一条)……”的流程来进行。
找了很久也没找到其他合适的方案,所以上来问问,这种情况下,如果坚持要用ADO.NET实体模型,该怎么处理?或者不用的话,有没有什么更优化的方案呢? MySQL ADO.NET 性能优化 Entity?Framework
[解决办法]
看这个帖子的8楼 http://bbs.csdn.net/topics/390543833?page=1#post-395266181 用sqlbulkcopy