项目中用ADO Entities  Framework来作为数据库表和实体的映射框架,对单表到3个关联表的增、删、改和查询操作,不用再用代码生成器去生成实体类和数据库操作类,简单逻辑功能实现起来,几乎不用写sql语句、存储过程,感觉开发起来提高了不少效率。但是有个跨多达6个表进行查询的,平均每个表的记录不到2000条,分页查询时,在进行统计满足条件的记录数时,就死在那了,直至net报数据库执行超时。对比存储过程实现同等功能的执行效率,怀疑entities  framework进行跨多表查询效率不行,用来做单表或跨2个表的操作还可以,跨多表操作建议还是用回存储过程吧。 
代码如下:
int count = 0;

using (var context = new DBEntities(DateCommand.ConnectionString))
            {

var result = from inner in context.InnerJoin
                             join ph in context.PathologyHead on inner.PathologyHeadID equals ph.ID
                             join pt in context.PathologyHeadDetailTestItem on inner.PathologyHeadDetailTestItemID equals pt.ID
                             join sp in context.Specimen on inner.SpecimenID equals sp.ID                   
                             join r in context.Receive on inner.ReceiveID equals r.ID
                             select sp.SpecimenNumber;

if (result.Count() > 0)
                {

count = result.Count();
                }
            }
            return count;

以上逻辑我改用sql2005通用存储过程分页来实现,同时在InnerJoin表增加插入10W条记录,测试发现按每页取10条记录计,执行前都清空db数据缓存和编译缓存,执行10次,cpu执行时间没有超过4S的,页面执行时的反应速度只第一次要4-6S左右,之后都是2、3s就可以显示记录。
        网上对entities  framework的多表查询方面资料很少,msdn也没发现对此种问题的说明,留档做一记录,entities  framework用来做单表或跨2个表的操作还行,跨多表操作还是用回存储过程。 

转载于:https://www.cnblogs.com/hyqiang168/archive/2009/12/22/1629745.html

ADO Entities Framework不对多表查询进行优化?相关推荐

  1. php多表查询性能优化,MSSQL_SQL Server多表查询优化方案集锦,SQL Server多表查询的优化方案是 - phpStudy...

    SQL Server多表查询优化方案集锦 SQL Server多表查询的优化方案是本文我们主要要介绍的内容,本文我们给出了优化方案和具体的优化实例,接下来就让我们一起来了解一下这部分内容. 1.执行路 ...

  2. MySQL多表查询核心优化

    概述 在一般的项目开发中,对数据表的多表查询是必不可少的.而对于存在大量数据量的情况时(例如百万级数据量),我们就需要从数据库的各个方面来进行优化,本文就先从多表查询开始.其他优化操作,后续另外更新, ...

  3. mysql useing查询,MySQL数据库之多表查询using优化与案例

    using 概念 using用来指定连接字段 using的结果也会对公共字段进行优化,优化的规则和自然连接是一样的 MariaDB [sel]> select * from grades inn ...

  4. Mysql 索引 与 多表查询性能优化

    最近做项目需要用到Luence Whoosh,要定时从数据库中索引出数据来供检索,但是在索引中设计多表查询,速度较慢,因为强迫症,想要做性能优化,因此把Mysql的核心又翻出来研究一遍. 关于MySQ ...

  5. mysql多表查询sql优化_SQL多表查询优化

    SQL优化 1.执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就 ...

  6. pg mysql 联表查询_postgresql多表查询语句优化

    今天接到客户反馈,网站这两天经常出现无法访问的情况,查看日志发现是一个页面里的sql查询太慢,需要30多秒导致超时并且因为访问量多堵塞住了,导致其他页面也无法正常访问,所以对这个sql进行优化,下面介 ...

  7. 【一起去大厂系列】什么是回表查询?怎么优化回表查询?

    提到什么是回表查询之前,不得不先解释一下InnoDB的索引. InnoDB的索引 InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Ind ...

  8. mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...

    这里写目录标题 事故现场 解决方案 提到的"回表查询" InnoDB的索引 什么是回表查询 怎么优化回表查询 事故现场 数据库使用的MySQL,有一个日志表,需要进行分页查询,于是 ...

  9. MySQL-回表查询与索引覆盖

    转自:https://www.cnblogs.com/yanggb/p/11252966.html mysql中的回表查询与索引覆盖 了解一下MySQL中的回表查询与索引覆盖. 回表查询 要说回表查询 ...

最新文章

  1. 构建基于AgileEAS.NET应用开发平台的简单应用程序
  2. Nginx 容器教程
  3. DataGridView数据验证CellValidating()
  4. CentOS6.3 重启后/etc/resolv.conf 被还原解决办法
  5. python json序列化对象_Python学习之json序列化
  6. 利用scipy包计算表格线的峰值,还原表格得到表格结构
  7. python中的series的结构_pandas 数据结构之Series的使用方法
  8. CentOS 配置httpd使局域网能够正常訪问
  9. WAMP(Windows+Apache+Mysql+PHP)环境搭建
  10. 联想K3全系,救黑砖(只要手机链接电脑有端口识别就能恢复正常)
  11. promoter:启动子预测程序(PPPs)软件现状及分析
  12. pe系统安装win10系统
  13. tampermonkey 下载
  14. Python L型组件填图问题(棋盘覆盖问题)
  15. Python操作word插入对象
  16. Window和WindowManager--《Android开发艺术探索》阅读笔记——第八章
  17. windows xp 实现远程关机
  18. Bombs CodeForces - 350C
  19. 欧姆龙PLC和FANUC发那科DeviceNet通讯
  20. matlab 画graph

热门文章

  1. pad_sequences序列预处理
  2. leetcode - 688. “马”在棋盘上的概率
  3. 去哪儿-05-recommendDev
  4. matlab小波分析常用函数
  5. Photoshop cs6中kuler和mini bridge打开是空白的解决方法
  6. Hibernate缓存和加强
  7. python获取系统参数_python 常用系统参数
  8. 惠普电脑怎么截屏_惠普(HP)暗影精灵6游戏台式电脑主机怎么样?配置和使用体验测评-最新资讯...
  9. c++builder中dbgrid控件排序_如何实现APP中各种布局效果?学会这几个控件就够了...
  10. python sftp模块_python用paramiko模块上传本地目录到远程目录