您当前的位置: 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亚游集团,  赵慧玲:NGN领域还是比较宽泛的,在国内软交换上,国内已经占据了有利的,在其他领域来看,运营商总是会优先选用质量好可靠性高标准化强合理的。总之,NGN的发展应该结合中国的和网络特点来考虑,不能照搬国外的。

【环球网军事11月30日报道 环球时报记者 郭媛丹】11月30日,针对中俄苏-35合同是否顺利进行,在国防部举行的例行记者会上,国防部新闻发言人杨宇军表示,中俄军技合作保持健康发展势头,双方在航空等领域合作项目正按计划推进。未来10年最赚钱行业    我们第一个企业也是这样的企业,我们从美国斯坦福毕业回来,做了China ren这个网站,融了最后一千五百万美金,我们创造了一个历史记录,不是烧钱最多的公司,而是烧钱最快的公司,这个网站一年之内烧掉了一千五百万美金,这个速度好象是没有别的公司比China ren更快。

从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%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(AG亚游集团). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类AG亚游集团.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4
医院现“广场舞” 大妈到处钻空子的尴尬咋化解? 柯洁豪言将再度终结农心杯 或者党毅飞七连胜 商场三八节推“共享男友”:扫码支付1元钱陪2小时 特朗普取消首次拉美访问 因为何事? 中甲-多米尼克戈武连击桑格尔救主 北控2-2呼和浩特 38亿买981个微信号!瀚叶股份遭问询:有无封号风险 当红主播被举报曾调侃南京大屠杀 斗鱼紧急回应 戴琳赛后疑似未和韦世豪握手 直接无视绕开|gif 脸书网最大规模资料外泄 5000万用户或“被助选” 人民日报:文化全球化实质是兜售西方文化 柁嘉熹助力深圳前之海 领队:团队齐心最重要 湖南湘阴发生一起命案 四人被杀死在家中
女子家暴丈夫十多年 曾开车把丈夫撞成粉碎性骨折 男子华山栈道解开安全绳跳崖 景区:遗体已寻获 高拉特用数据诠释啥叫恒大大腿 1500万欧太值了 中国夫妇在美遇严重车祸 使馆警方和美航这么回复 富力主场已连续9场不败 土豪金魔力跨赛季延续 目标遏制中俄!美国砸数十亿美元研制未来武器 欧洲议会选举:法国绿党希望成为“第三个选择” 台拟助“邦交国”振兴观光被批:泥菩萨过河还摆阔 国奥亚运成绩影响里皮续约 2000万欧年薪成障碍 獐子岛扇贝再次大面积绝收 央视调查:事有蹊跷 王劲:离开景驰并非因为诉讼 百度指控与事实严重不符 泰达外援:有来自亚洲的报价 愿留欧洲不想回中国
阿森纳候选新帅获温格力挺:他具备一切成功素质 天津悍将当选天津市打击经济犯罪宣传大使 勇士最强输出明夏回家乡?他的想法跟常人相反 一场朴实的胜利 莫里纳利夺冠意料之外情理之中 日本1月全国核心CPI增幅平稳 撤除刺激举措难度大 [新浪彩票]足彩18034期大势:拜仁主胜稳胆 科学家欲揭英国巨石阵之谜:巨石到底来自哪里? 女排输韩国更是一场及时雨 为世锦赛敲响警钟 跟踪偷拍举报官员违纪算侵犯隐私吗?专家这样说 微信赚钱的三大方法 2016做什么生意有前景 小投资暴利 过年摆地摊赚10万 AG亚游集团