EF性能优化篇一
2024-09-09 04:02:04
https://www.cnblogs.com/chenwolong/p/7531955.html
1、合理使用AsNoTracking
若对查询的数据不需要做任何修改,则可采用AsNoTracking;但若在查询过程中做了select映射之类的操作,则不需要添加。
2、合理使用AsNonUnicode
var a = context.Student.Where(A => A.StuName=="赵刚").ToList();
var b = context.Student.Where(A => A.StuName == DbFunctions.AsNonUnicode("赵刚")).ToList();
不加AsNonUnicode SQL中会有N,查询过程中需要把数据库默认格式转化为Unicode格式来查询,因此性能被拉低。如果不使用N前缀,字符串将转换为数据库的默认代码格式,可能导致不识别的字符。
3、判断是否存在使用Any
4、延迟加载
为导航属性添加virtual属性,才会延迟加载数据;但延迟加载会产生严重的性能问题,如foreach
使用Include显示连接查询将懒加载变成显示加载(需要手动导入System.Data.Entity,不然Include只能传入字符串)
var scores = db.Scores.Take(100).Include(t=>t.Student).ToList();
5、Contains、StartsWith、EndsWith
6、EF预热
最新文章
- autoLyout纯代码适配
- 如何在WTL和MFC中使用duilib及如何静态使用duilib库!(初级讲解 附带一个Demo)
- 注销CA登录
- wifi详解(二)
- WebApi学习总结系列第三篇(Http)此篇持续更新...
- linux安装JDK TOMCAT
- 『软件介绍』SQLServer2008 基本操作
- linux select函数 shutdown函数
- [置顶] android系统功能调用大全
- spring注解一次 清除多个缓存
- docker~使用阿里加速器
- Tensorflow学习-数据读取
- 关于openSetting通过tap的调用
- 学习 Spring (十) 注解之 @Bean, @ImportResource, @Value
- node初学者笔记
- day10 内容大纲
- Linux/CentOS实现交换机-简单的交换机实现
- 转:sock_ev——linux平台socket事件框架(基于数据报的测试程序) .
- [转]JOGL安装
- 【刷题】UOJ #34 多项式乘法