一、EntityFramework
modelBuilder.Entity<Domain.UseOilPlanDetail>().HasRequired(x => x.MainOilPlan).WithMany().HasForeignKey(y => y.PlanId);// 建立用油明细和主计划关系
说明: 多对1 UseOilPlanDetail 明细中包必须含MainOilPlan 主数据中可无导航属性:WithMany() 明细主关联主数据外键PlanId

modelBuilder.Entity<Domain.UseOilPlan>().HasMany(x => x.Attachments).WithRequired().HasForeignKey(y => y.BelongId);// 用油计划于附件表之间导航关系
说明:主数据与明细 1对多 主数据中有多个子数据Attachments,子数据中必须包含主数据Id 但可无导航属性:WithRequired() 用明细数据外键关联:BelongId (及主数据主键Id)

modelBuilder.Entity<Domain.UseOilPlan>().HasRequired(x => x.ConfirmUser).WithMany().HasForeignKey(y=>y.ConfirmedById);//用油计划和用户之间关系
modelBuilder.Entity<Domain.LadingBill>().HasMany(x => x.Attachments).WithRequired().HasForeignKey(y => y.BelongId);// 提货单与附件之间导航关系

二、sql优化 01
1、索引 所取数据条数小于总数据条数5%
2、加索引列 该列分组总条数 大于数据总条数 20% 如 select count(1) from systemUser group by Id / select count(1) from Systemuser 成为选择性,
3、在有可能为null 的字段上建立索引可以为其设置默认值 create index idx_page on t_page(object_id,0)
4、sql优化的核心思想 就是想方设法减少sql的物理I/O次数
5、not in 里面如果有null,整个查询会把这回空,而in 里面有null查询不受Null影响
6、Table Access by Index rowId ,Index Unique Scan ,Index Range Scan,Index Skip Scan ,【Index Full Scan ,Index Fast Full Scan (如果索引字段比较大(GB级别)应该优先使用 Index Fast Full Scan) 】 其性能由好到低排序的
7、建立索引 等值条件字段 排在前面、排序字段、不等值条件字段 按照依次顺序建组合索引
8、 select * from (select * from (select a.* ,rownum rn from (select * from tp_page order by object_id,object_name desc) a) where rownum<=10)where rn>=1 注意 Rownum<=10 的位置

EntityFramework 知识点与sql优化汇总的更多相关文章

  1. SQL优化汇总

    今天面某家公司,然后问我SQL优化,感觉有点忘了,今天特此总结一下: 总结得是分两方面:索引优化和查询优化: 一. 索引优化: 1. 独立的列 在进行查询时,索引列不能是表达式的一部分,也不能是函数的 ...

  2. ORACLE SQL性能优化汇总

    ORACLE SQL语句共享 Oracle SQL语句具备共享特性,为了不让ORACLE数据库重复解析相同的简单单表SQL语句,ORACLE在SGA系统共享区域内SBP共享池内存放的SQL语句将被所有 ...

  3. EntityFramework Core Raw SQL

    前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...

  4. (转)SQL 优化原则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  5. 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)

    基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编   ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...

  6. oracle sql优化笔记

    oracle优化一般分为:1.sql优化(现在oracle都会根据sql语句先进行必要的优化处理,这种应该用户不大了,但是像关联和嵌套查询肯定是和影响性能的) A.oracle的sql语句的条件是从右 ...

  7. SQL优化(zhuan)

    转自:http://www.jfox.info/SQL-you-hua 数据库的优化问题 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出S ...

  8. SQL 优化原则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  9. [SQL]SQL优化34条

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! () 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到 ...

随机推荐

  1. 使用autoconf和automake生成Makefile

    使用环境: 我的是Ubuntu 16.04,需要用到autoconf和automake,没有的话自行安装. 以helloworld为例: 1.首先新建一个文件夹然后进去没的说:然后自然得先写出那个著名 ...

  2. mybatis默认的数据源连接池(PooledDataSource和UnPooledDataSource)

    一般情况下我们操作数据库都是通过connection,但是频繁创建和删除connection会严重影响效率,因此在这种情况下我们一般会用到连接池,因为项目中用到的是mybatis,所以了解一下myba ...

  3. 选择 NoSQL 需要考虑的 10 个问题

    那么我为什么要写这篇文章呢? 是因为我认为NoSQL解决方案不如RDBMS解决方案吗?当然不! 是因为我专注于SQL的做事方式,而不想陷入一种相对较新的技术的不确定性吗?不,也不是!事实上,我非常兴奋 ...

  4. Map和List集合嵌套取值

    遍历List的方法: List<User> list = new ArrayList();list = userMapper.getUserList();//从数据库取得list值for( ...

  5. Spring Boot和Spring Cloud学习资源推荐

    Spring Boot和Spring Cloud学习资源推荐   比较好的学习资源,分享一下. 1.Spring Boot官方文档:http://projects.spring.io/spring-b ...

  6. SQL Server 2014 各版本介绍

    SQL Server 2014 各版本介绍 目前,SQL Server 2014 分为主要版本和专业版. 在选择版本的时候可以根据您具体的需要进行抉择,如果你需要一个免费的数据库管理系统,那么就选择 ...

  7. 常用js校验

    身份证 function isCardNo(idCard){ //15位和18位身份证号码的正则表达式 var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0 ...

  8. Python面向对象 杂篇(后记)

    异常处理 什么是异常:         我们在调试程序时,常常会因为各种报错信息导致程序无法运行,异常也是一个对象,用来表示错误.我们可以捕捉异常,并做相应处理,从而增加代码的友好程度. 异常处理: ...

  9. mybatis中Parameter index out of range (2 > number of parameters, which is 1).

    ${name} 是不带单引号的,而#{name} 是带单引号的

  10. Windows 08R2_破解管理员密码

    目录 目录 破解Windows 08R2管理员密码 破解Windows 08R2管理员密码 将登录界面的功能链接变成cmd.exe的链接,通过CMD进入到目录C:\Windows\System32下, ...