entity framework 性能真那么差

 我来答
燃烧的羊毛
2017-04-15 · TA获得超过118个赞
知道答主
回答量:47
采纳率:100%
帮助的人:38.8万
展开全部
说EF性能差的,目测是根本不会使用EF的,或者说是把EF用的的很烂的人。
EF目前是6.1.3。针对code first以及SQL脚本优化做了非常多的工作。举个简单的例子。现在估计还有大部分.NET程序员在使用数据脚本分页的时候还在用着古老的top分页吧?好一点的知道row_number。但是EF会根据你连接SQL版本(仅讨论SQLserver)进行不同版本的分页支持。例如sql2012以上的版本。EF会自动采用FETCH NEXT进行分页,fn和top的性能对比,这个就不说了。
再举个例子。之前给公司某同事擦屁股,有一个多表多关联复杂查询并且内部要实现一些函数操作。采用linq to ef编写的。测试反馈说查询速度巨慢。我打开sql profile看了一下。此君接近90行的linq,生成了2000行的SQL。于是我逐步重写。最后变为40行的Linq,生成60行的脚本,打开速度立马飞跃到毫秒级。
以上是说的读取性能方面的问题。下面说一下写的问题,目前EF对批量写批量UP操作的确支持不是很好(不要提addrange) 但是可以通过第三方EF插件实现对数据库的bulk操作。大量写的效率基本和在sql里进行bulk几乎差不多。
所以不是EF性能不好,而是你不会用罢了
cpp2017
2018-10-30
知道答主
回答量:5
采纳率:0%
帮助的人:4147
展开全部
模式决定一切,他底层的模式决定了,性能好不到哪里去。用得差的固然慢,用得好的性能确实有不错的提升,但是无论怎么样,这种映射的模式决定了他确定有相当的性能损耗,比如: 相对于存储过程来说,1、sql上行传输量大 2、输出一些无关的字段,这对于大表尤其明显,3对于一些复杂的逻辑,需要拿到数据到.net代码中处理,来来回回的交互远没有在存储过程中本地内存中处理快。4、对于一些需要使用事务,使用锁的地方,事务,锁占用的时间效率==都是问题,所以EF只适合一些小的应用,对于大的比较复杂,性能高的系统还是不适用,不是说EF不好,关键看应用场景,根据不同的场景选择最合适的技术架构才是最正确的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingtoon2012
2018-02-09
知道答主
回答量:10
采纳率:0%
帮助的人:3.9万
展开全部
自问自答玩的很嗨吧!
这东西烂是因为不可测,需要额外花费精力去关注运作的细节,要优化性能直接优化sql查询不直观么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuisen水森
2020-01-11 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:50%
帮助的人:46.1万
展开全部
ef大而全,然而我发现ef没用武之地,ef性能现在提升很多,但是这是说预热后执行sql的性能,小项目哪里有多余的资源给你几十秒先预热,基本都是冷启动;大项目对性能要求又特别高,而且对于大项目来说EF真心不好动数据库,万一有需求变化能改死人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式