Option(Force order)

今天和大家分享一下 SQL中强制执行联接顺序Option(Force Order)

一、SQL本身SQL引擎优化已经做的非常好了,但是也有默认的多表连接引擎效果达不到我们期望的值,

  因此我们需要强制执行我们多表联接顺序。

  eg:

CREATE TABLE #Student (   RowId int identity(1,1),   Name varchar(50),   Age int ) GO

CREATE Table #Course (    StudentNo int ,    CourseType Varchar(50) ) GO

insert INTO #Student VALUES('Tom',21)

insert INTO #Student VALUES('Jerry',22)

insert INTO #Student VALUES('John',23)

INSERT INTO #Course VALUES(1,'语文')

INSERT INTO #Course VALUES(1,'数学')

INSERT INTO #Course VALUES(1,'英语')

INSERT INTO #Course VALUES(1,'化学')

INSERT INTO #Course VALUES(2,'语文')

INSERT INTO #Course VALUES(2,'数学')

INSERT INTO #Course VALUES(3,'英语')

INSERT INTO #Course VALUES(3,'化学')

GO

由上图结果 我们明显发现 SQL搜索引擎默认 都选择#Student表做我们的基表 执行内连接

但实际上我们第二段SQL想#Course做为我们的基表 执行

这时 我们在需要 Option(Force Order) 强制按照我们的连接顺序执行

SQL默认引擎优化不是最优的执行计划时 此语句就是我们期望的了

保持查询语法指示的联接顺序Option(Force order)的更多相关文章

  1. Learn Rails5.2- ActiveRecord: sqlite3的用法, Query查询语法。乐观锁和悲观锁案例,查询语法includes(), 多态关联,destory和delete, Scope, Validats, Migrations

    rails generate model photo title:string album:references 这会产生一个album_id列,当建立belongs_to关联时,需要用到. refe ...

  2. 步步深入:MySQL架构总览->查询执行流程->SQL解析顺序

    前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来 ...

  3. Entity Framework 基于方法的查询语法

      实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发 ...

  4. LINQ to Entities 查询语法

    转自: http://www.cnblogs.com/asingna/archive/2013/01/28/2879595.html 实体框架(Entity Framework )是 ADO.NET  ...

  5. EF基于方法的查询语法

    实体框架(Entity Framework )是 ADO.NET 中的一套支持开发面向数据的软件应用程序的技术. LINQ to Entities 提供语言集成查询 (LINQ) 支持,它允许开发人员 ...

  6. ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作

    查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...

  7. MySQL架构总览->查询执行流程->SQL解析顺序

    Reference:  https://www.cnblogs.com/annsshadow/p/5037667.html 前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后 ...

  8. LINQ to Objects系列(2)两种查询语法介绍

    LINQ为我们提供了两种查询语法,分别是查询表达式和查询方法语法.这篇文章分为以下几个方面进行总结. 1,一个包含两种查询语法的简单示例 2,查询表达式的结构 3,查询方法相关的运算符 一个包含两种查 ...

  9. 步步深入MySQL:架构->查询执行流程->SQL解析顺序!

    一.前言 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序 ...

随机推荐

  1. gdb之watch命令

    [gdb之watch命令] 什么是watchpoint? watchpoint,顾名思义,其一般用来观察某个变量/内存地址的状态(也可以是表达式),如可以监控该变量/内存值是否被程序读/写情况. 在g ...

  2. POJ 2398 Toy Storage(计算几何,叉积判断点和线段的关系)

    Toy Storage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3146   Accepted: 1798 Descr ...

  3. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。 解决方法

    webconfig文件对于oracle的映射错误.需要在以下位置修改 <runtime> <legacyCorruptedStateExceptionsPolicy enabled= ...

  4. 在TFS2013上删除项目

    TFSDeleteProject 会永久性损坏团队项目,之后无法恢复该项目. 您应该在使用 TFSDeleteProject 之前备份所有重要的项目数据. 若要使用 TFSDeleteProject  ...

  5. UVaLive 7503 Change (坑题。。。。。。)

    题意:给定两个人民币,问你花最少钱保证能够凑出另一个价格. 析:这个题最大的坑就是在,并一定是一次就凑出来,可以多次,然后就可以想了,如果要凑的数和1有关,特判,如果是2倍数,0.01就够了,否则就是 ...

  6. ManagementFactory (二) getMemoryMXBean

    MemoryMXBean package cn.zno.outofmomery; import java.lang.management.ManagementFactory; import java. ...

  7. Java中的BASE64

    located in rt.jar... public class sun.misc.BASE64Encoder extends sun.misc.CharacterEncoder{ //.. } p ...

  8. jQuery 的选择器

    本文来自网上转帖 1. 基础选择器 Basics 名称 说明 举例 #id 根据元素Id选择 $("divId") 选择ID为divId的元素 element 根据元素的名称选择, ...

  9. 用html5的canvas生成图片并保存到本地

    原文:http://www.2cto.com/kf/201209/156169.html 前端的代码: [javascript]  function drawArrow(angle)  {      ...

  10. OC:关于Itunes你了解多少?

    在苹果电脑里有一个 iTunes 简单的说iTunes是苹果公司开发的一个应用程序,由苹果电脑在2001年1月10日于旧金山的 Macworld Expo 推出的一款数字媒体播放应用程序,用于播放以及 ...