一、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. Java关于线程池的使用

    一.四种线程池创建的方式 Java通过Executors提供四种线程池,分别为: newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回 ...

  2. JQuery 获取表格table所有行第一列

    main_table 是表ID $("#main_table tr").find("td:eq(0)")

  3. go语言从例子开始之Example19.接口

    接口 是方法特征的命名集合. Example: package main import "fmt" //让方法,实现api这个接口. type api interface{ get ...

  4. plsql exception

    EXCEPTION aligns with BEGIN ... END blocks. There is no BEGIN inside your loop, so there should be n ...

  5. windows读密码的几种姿势

    1.mimikatz mimikatz.exe "sekurlsa::debug" "sekurlsa::logonPasswords full" >&g ...

  6. javascript 操作cookies详解

    javascript 操作cookies详解 这段操作cookies的方法我使用很久了,但是一直一来没遇到什么问题,今天在做一个在第一个页面保存了cookies,第二个页面获取或者第三个页面获取的功能 ...

  7. vue基础九

    1.使用组件 1.1注册 要注册一个全局组件,你可以使用 Vue.component(tagName, options). 例如: Vue.component('my-component', { // ...

  8. ELK Stack 7.1.1之集群搭建

    一. 环境准备:3台Linux服务器,系统为CentOS 7.5 角色划分:3台机器全部安装jdk1.8,全部安装elasticsearch (后续都简称为es集群) 主节点上需要安装kibana与l ...

  9. oracle中解决中文乱码问题

    中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...

  10. docker容器管理-含静态Ip(10)

    docker run命令详解 docker run -t #表示分配一个伪终端 -i #表示让容器的标准输入打开,不跟这个参数容器启不来 -d #后台运行 -P #dockerfile中EXPOSE ...