您当前的位置: AG亚游集团 > 数据库教程 > MySQL教程 > 从join on和where执行顺序认识T-SQL查询处理执行顺序

从join on和where执行顺序认识T-SQL查询处理执行顺序

作者:xiaoxiao 来源:未知 发布时间: 2014-07-30 09:45 点击: 次
SQL语句中join连表时on和where后都可以跟条件,那么对查询结果集,执行顺序,效率是如何呢? 通过查询资料发现: 区别: on是对中间结果进行筛选,where是对最终结果筛

AG亚游集团,  反坦克导弹系统440多套:150套“巴松管”、40套“竞技神”、50套“短号”(1000枚导弹)、200套“米兰”,以及“混血儿”和“棱堡”(800-2000枚炮射导弹);   

  Alienware在高端PC机,笔记本,多媒体中心等方面推出了不少产品,旨在进一步推动消费者在家中、工作和出行途中新的数字生活方式。近日他们推出了基于英特尔欢跃技术平台的多媒体PC机——Area-51 3550和Area-51 5400。而在3月9日在德国汉诺威开幕CeBTI展会上,我们到了Area-51 3550多媒体PC机的身影。白手起家怎样创业  伍雯弘认为,用户对IPTV确实有需求,这一点无论是电信还是广电都已经清楚认识到,产业的发展谁也不可能阻碍,即使现在政策上还有一些问题,厂商也可以有很多办法绕过去。

从join on和where执行顺序认识T-SQL查询处理执行顺序

  SQL语句中join连表时on和where后都可以跟条件,那么对查询结果集,执行顺序,效率是如何呢?

  通过查询资料发现:

  区别:

  
on是对中间结果进行筛选,where是对最终结果筛眩

  执行顺序:

  
先进行on的过滤, 而后才进行join。

  效率:

  
如果是inner join, 放on和放where产生的结果一样, 但没说哪个效率速度更高? 如果有outer join (left or right), 就有区别了, 因为on生效在先, 已经提前过滤了一部分数据, 而where生效在后.

  最后来了解下T-SQL对查询逻辑处理。

  T-SQL逻辑查询的各个阶段:

  (5)SELECT DISTINCT TOP(<top_specification>) <select_list>                     

  (1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate>

  (2)WHERE <where_predicate>

  (3)GROUP BY <group_by_specification>

  (4)HAVING <having_predicate>

  (6)ORDER BY <order_by_list>

  T-SQL在查询各个阶级分别干了什么:

  (1)FROM 阶段

     FROM阶段标识出查询的来源表,并处理表运算符。在涉及到联接运算的查询中(各种join),主要有以下几个步骤:

  a.求笛卡尔积。不论是什么类型的联接运算,首先都是执行交叉连接(cross join),求笛卡儿积,生成虚拟表VT1-J1。

       b.ON筛选器。这个阶段对上个步骤生成的VT1-J1进行筛选,根据ON子句中出现的谓词进行筛选,让谓词取值为true的行通过了考验,插入到VT1-J2。

       c.添加外部行。如果指定了outer join,还需要将VT1-J2中没有找到匹配的行,作为外部行添加到VT1-J2中,生成VT1-J3。

     经过以上步骤,FROM阶段就完成了。概括地讲,FROM阶段就是进行预处理的,根据提供的运算符对语句中提到的各个表进行处理(除了join,还有apply,pivot,unpivot)

  (2)WHERE阶段

      WHERE阶段是根据<where_predicate>中条件对VT1中的行进行筛选,让条件成立的行才会插入到VT2中。

  (3)GROUP BY阶段

        GROUP阶段按照指定的列名列表,将VT2中的行进行分组,生成VT3。最后每个分组只有一行。

  (4)HAVING阶段

        该阶段根据HAVING子句中出现的谓词对VT3的分组进行筛选,并将符合条件的组插入到VT4中。

  (5)SELECT阶段

  这个阶段是投影的过程,处理SELECT子句提到的元素,产生VT5。这个步骤一般按下列顺序进行

         a.计算SELECT列表中的表达式,生成VT5-1。

         b.若有DISTINCT,则删除VT5-1中的重复行,生成VT5-2

         c.若有TOP,则根据ORDER BY子句定义的逻辑顺序,从VT5-2中选择签名指定数量或者百分比的行,生成VT5-3

  (6)ORDER BY阶段

  根据ORDER BY子句中指定的列明列表,对VT5-3中的行,进行排序,生成游标VC6.
分享到:
本文"从join on和where执行顺序认识T-SQL查询处理执行顺序"由远航站长收集整理而来,仅供大家学习与参考使用。更多AG亚游集团尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
AG亚游集团关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(AG亚游集团). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类AG亚游集团.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4
对31岁的黑版姚明来说,这个时代一点也不友好 云零售并入天猫淘宝 叶国晖任新零售事业部负责人 楼继伟:供给侧结构性改革要破除传统思维 苏炳添:我一定会跑到东京 希望年轻人能做到更好 步森股份控制权战:部分高管未出席股东会 引监管关注 俄里海舰队将整体南迁 有利于跨地区使用 预计对华出口持续增长 欧洲拉美农产品紧盯中国市场 扎克伯格自出生以来日均赚3789万 仅次于贝佐斯 澳政府不“反华”改向中国示好:做朋友对双方都好 普京送特朗普的足球有芯片被疑 台媒:商家打广告 新政让青训队吃香 辽媒:辽篮有望成为受益者 辽篮将与宝岛劲旅热身 黑人陈建州宴请全队
AETOS艾拓思:意大利大选即将举行 市场面临大幅波动 这个行业人员需求1000万 仅有30万人具备从业资格 圈里越来越多“拖鞋哥” 是为博眼球还是水平太高? 火箭第8次获年度最佳超越亨德利 丁俊晖创新历史 英媒评全球最富33人 王健林跌落榜单 美国人口出生率降至30年最低 可能将影响经济 厄齐尔退出德国队 令人想起一件激怒中国的恶心事 美国公司90%的区块链项目将永远无法运营 俄罗斯战机再次飞临日本海 日自卫队战机紧急起飞 雷诺品牌创立120周年 牵手阿里巴巴五新战略垂直落地 朝鲜外相罕见访问瑞典 外媒:或为“金特会”铺路 国资委将给两类公司松绑 更多自主授权正在研究中
德内政部:剥夺极端分子护照系新政府工作首要目标 联想刘军:在智能物联赛道上 联想没有对标竞争对手 大阪站谢震业200米破纪录摘银 苏炳添接力第三 休赛期引援怪象!CBA本土中锋成稀缺资源 年交易额破百亿 社交电商云集“爆品”战略奏效? 下降近五成 流量资费如何算账 图解:威少三双拿得真不易 得分轻松助攻太难 一方受托管传闻影响引援滞后 多将离开失血严重 台媒:陆客减少 岛内拯救观光业要靠“米其林”? 挣钱最多的行业 适合男生十大行业 不怕死想发财的兄弟进 没钱怎么创业 AG亚游集团