EntityFramework性能简单测试
作者:网络转载 发布时间:[ 2015/4/3 14:21:19 ] 推荐标签:性能测试 EntityFramework 数据
EntityFramework的便捷不多阐述, 他的性能来测试了下不做评论, 缓存机制确实还不错 ....
简单的查询一条数据
1 public static IM_CallRecord GetEFData()
2 {
3 using (ModelContainer mv = new ModelContainer())
4 {
5 return (from c in mv.IM_CallRecord where c.id == 12356 select c).SingleOrDefault<IM_CallRecord>();
6 }
7 }
8
9 static void Main(string[] args)
10 {
11 Console.WriteLine("从230万条数据取一条数据");
12 //=================常规SQL===================
13 var beginTime = DateTime.Now;
14 com.infusionmanage.model.impl.IM_CallRecordDAOImpl im = new com.infusionmanage.model.impl.IM_CallRecordDAOImpl();
15 im.findByPage(12356, 1);
16 var endTime = DateTime.Now;
17 Console.WriteLine("---常规SQL----耗时:" + (beginTime - endTime).ToString());
18
19 //=================EF框架=====================
20 beginTime = DateTime.Now;
21 GetEFData();
22 endTime = DateTime.Now;
23 Console.WriteLine("从EF框架第一次耗时:" + (beginTime - endTime).ToString());
24
25 beginTime = DateTime.Now;
26 GetEFData();
27 endTime = DateTime.Now;
28 Console.WriteLine("从EF框架第二次耗时:" + (beginTime - endTime).ToString());
29
30 Console.ReadKey();
31 }
高层视图:
改变在现有系统使用EntityFramework并使其正常工作好的理由是什么?
· All -in-1框架的类映射表,需要编写映射代码, 并且是很难维护的。
· 可维护性,易于理解的代码,无需创造大的数据访问层。
· 提供LINQ查询数据库,这需要从初级开发人员不太了解SQL。
· EF可以用作用于数据服务和OData Service的基础设施。
什么的情况下,不建议使用EF呢:
· 实时的应用程序。
· 只能通过存储过程访问数据库。 EF的优势是:跟踪实体状态Change时,不仅仅在存储过程上.(即使EF确实对存储过程支持有限的)。
· 频繁插入操作(Insert), 并且EF不支持大数据Bulk 插入。
· 频繁更新操作,更新的目标主要是当多行(用一个单值)
例如:UPDATE 表名 SET ColumA = 10 Where ColumnB =?
这种更新操作更好的使用的ExecuteNonQuery(也可从Context上下文或直接从Ado.Net)。
· 反范式的表设计和高性能查询。 EF产生查询,他们是难以维护的,它并不能很好地支持映射到不规范的表。
· 对程序有非常的性能要求, 需要对每个查询进行监控.
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11