Entity Framework性能影响因素分析
2024-09-05 02:40:58
1、对象管理机制-复杂
为更好的管理模型对象,EF提供了一套内部管理机制和跟踪对象的状态,保存对象一致性,使用方便,但是性能有所降低。
2、执行机制-高度封装
在EF中,所有的查询表达式都会经过语法分析、解析SQL语句、然后调用底层的ADO.NET对象去执行,中间的这些环节导致性能有所降低。
3、SQL语句-低效
EF采用映射机制将对象操作转换成SQL语句,SQL语句一般的基于标准模块生成的,不会进行特殊优化,和直接编写SQL语句操作数据库相比,效率会打折扣,复杂操作更为明显。
状态管理机制优化
AsNoTracing()方法
1、添加AsNoTracing()方法后,对象将不被状态管理,查询性能提高
2、返回的实体将不再DbContext中缓存
3、适合场景:纯粹查询
禁用自动跟踪变化
分析
1、关闭前,当执行Add()操作时将会耗费大量的性能,会导致DbContext遍历所有缓存的Entry,比较原始值和当前值,而这个操作会非常耗费性能
2、关闭后,使用Add()方法告知DbContext中对象的变化即可,如果是删除使用Remove()方法,如果是修改则还需要通过State属性显示告知变化
3、适合场景:大批量操作数据(添加、删除、修改)
最新文章
- Android—Work—1day
- HTML。CSS浮动元素详解
- 选择哪种方式进行SharePoint的备份
- js数据类型判断和数组判断
- compass制作sprite雪碧图
- 【转】HTML5新增元素兼容旧浏览器方法
- 巧解Tomcat中JVM内存溢出问题
- Hibernate 一对多自身双向关联关系 用于类别表的实现
- servletContext百科
- LLVM对注释的新增支持 @ WWDC 2013
- Memory Analyzer Blog
- ext3文件系统目录限制问题
- 【NO.11】Jmeter - 构建1个可供Linux使用的Jmeter测试脚本 - 共3个步骤
- 工具SQL
- PHP-CPP开发扩展(六)
- activiti_change_ok
- TIOBE 11月编程语言榜:Go逆袭,Python势头很猛!
- InstallShield中打包ArcEnineRuntime
- 《DSP using MATLAB》Problem 2.19
- angular2自学笔记(二)---路由、服务等八大主要构造块