我的ORM之十三 -- 性能参数
测试环境
台式机:
主板:映泰Z77
CPU:i5 3470(3.2GHz)
内存:DDR3 1600 8G(单条)
硬盘:创见 SSD 256G
ORM从过程上,可以分两个大的部分:
- 生成SQL
- 把返回的数据(DataReader 或 DataSet)转换成 强类型的结果集
生成SQL测试
用比较复杂的查询(为了测试,查询生成的SQL不能执行,仅为了测试生成SQL的性能)
public ActionResult TestGenSqlP()
{
Stopwatch sw = Stopwatch.StartNew();
for (int i = ; i < ; i++)
{
dbr.PUser
.Select(o => new Columns(o.Id, o.Name.JoinStr()))
.Join(dbr.Corporation, (a, b) => a.Id == b.Id)
.Join(dbr.City, (a, b) => a.Id == b.Id)
.Join(dbr.Annex, (a, b) => a.Id == b.Id)
.Join(dbr.Bank, (a, b) => a.Id == b.Id)
.Join(dbr.CorpUser, (a, b) => a.Id == b.UserID)
.Join(dbr.Menu, (a, b) => a.Id == b.Id)
.Where(o => o.Id > & o.Name == "abc" & o.Logo > & o.CreateAt.IsSameDay("2015-05-26".AsDateTime()))
.OrderBy(o =>
dbo.CaseWhen(dbr.PUser.Id < , new ConstColumn())
.WhenThen(dbr.PUser.Id.Between(, ), new ConstColumn())
.ElseEnd(new ConstColumn())
.Asc)
.AutoGroup()
.ToCommand();
} return Content(sw.ElapsedMilliseconds.ToString());
}
三次结果:(毫秒)
5950
5804
5801
平均每次生成SQL时间: 0.6毫秒
数据对象化测试
单条数据:
public ActionResult TestToObjectP()
{
using (new MyOqlConfigScope(ReConfigEnum.SkipPower))
{
var menus = dbr.Menu.Select().ToMyOqlSet(); Stopwatch sw = Stopwatch.StartNew();
for (int i = ; i < ; i++)
{
dbo.DictionaryToModel(menus.Rows[i % menus.Rows.Count], new MenuRule.Entity());
} return Content(sw.ElapsedMilliseconds.ToString());
}
}
三次结果:(毫秒)
237
229
241
强类型化一条数据,平均时间: 0.025毫秒
强类型化单条和多条,底层是一样的。就不用测试了。
我的ORM之十三 -- 性能参数的更多相关文章
- Django之ORM字段和字段参数
ORM介绍 ORM概念 ORM由来 ORM的优势 ORM的劣势 ORM总结 Django中的ORM Django项目使用MySQL数据库 Model 快速入门 字段 自定义字段 字段参数 Model ...
- 记录bigdesk中ElasticSearch的性能参数
定时采集bigdesk中的Elasticsearch性能参数,并保存到数据库或ELK,以便于进行长期监控. 基于python脚本实现,脚本如下: #coding=gbk import httplibi ...
- Tomcat性能参数设置
Tomcat性能参数设置 Tomcat性能参数设置 博客分类: Java LinuxTomcat网络应用多线程Socket 默认参数不适合生产环境使用,因此需要修改一些参数 1.修改启动时内存参数.并 ...
- Django ORM 常用字段和参数
Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...
- ORM常用字段和参数
目录: ORM常用字段和参数
- 关于获取Windows下性能参数的总结
Windows下特定进程或者所有进程的CPU.物理内存.虚拟内存等性能参数的获取方法小结,包括如何在MFC中以及如何使用C#语言来获取参数. VC API:GlobalMemoryStatus 获取全 ...
- 认识loadrunner及相关性能参数
认识loadrunner及相关性能参数 LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整 ...
- Django中ORM介绍和字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Django框架 之 ORM 常用字段和参数
Django框架 之 ORM 常用字段和参数 浏览目录 常用字段 字段合集 自定义字段 字段参数 DateField和DateTimeField 关系字段 ForeignKey OneToOneFie ...
随机推荐
- Linux下Java安装与配置
一.卸载系统自带的JDK 如果Linux已经自带OpenJdk,我们需要将它卸载掉,否则可以直接[安装JDK] 查看Linux自带的JDK是否已安装,输入如下命令查看JAVA版本信息. java -v ...
- servlet总结
什么是Servlet Tomcat容器等级 手工编写第一个Servlet 使用MyEclipse编写Servlet Servlet生命周期 Servlet常用对象,且与Jsp九大内置对象的关系 Ser ...
- 深入理解Java虚拟机(三)、垃圾收集算法
1.第一门真正使用内存动态分配和垃圾收集技术的语言:Lisp 2.程序计数器.虚拟机栈.本地方法栈这3个区域随线程而生灭,这几个区域的内存会随着方法结束或线程结束而回收,GC关注的是Java堆和方法区 ...
- 关于安装sql2012出现的netfx3功能问题
这个问题需要下载framework3.5即可继续正常安装,所以说低版本的framework也是有必要安装的
- 操作系统win2003 x64的,安装OFFICE2003后,DCOM服务找不到 WORD应用程序服务
打开注册表,找到以下健值 HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT\CLSID\ ...
- My English Dictionary
A axis 坐标轴 architecture 结构 B C consider 考虑 closure 闭包 clip 修剪 convert 改变 D default 默认的 valid 有效的 d ...
- Ajax Step By Step1
Ajax 最关键的地方,就是实现异步请求.接受响应及执行回调. jQuery 对 Ajax 做了大量的封装,不需要去考虑浏览器兼容性, 对于封装的方式,jQuery 采用了三层封装:最底层的封装方法为 ...
- C#语言基础— 输入与输出
C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...
- 编译 wxWidgets-3.0.2 on Mac OS X Yosemite 出错?!的解决方法
tar -zxf wxWidgets-3.0.2.tar.bz2 //解压 //三部走 ./configure ./make 提示webKit出错 原因:有人偷懒,没试编译就发布了. 解决:找到. ...
- redis命令总结
Redis命令总结 redis 127.0.0.1:6379> info #查看server版本内存使用连接等信息 redis 127.0.0.1:6379> client list ...