zoukankan      html  css  js  c++  java
  • 保持查询语法指示的联接顺序Option(Force order)

    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默认引擎优化不是最优的执行计划时 此语句就是我们期望的了

  • 相关阅读:
    PHP mysqli扩展库 预处理技术
    libevent入门(1)
    你的项目需要升级成64bit程序吗?
    [敏捷个人]个人知识管理
    [转]职业规划中的“我想要”和“我需要”
    《领导力》读书笔记
    http 传输原理及格式
    转载:Fiddler 教程
    Nginx 配置文件详解
    Wireshark
  • 原文地址:https://www.cnblogs.com/tx720/p/5484583.html
Copyright © 2011-2022 走看看