社区
MS-SQL Server
帖子详情
sql server JOIN 执行顺序问题
jldzy
2015-03-25 12:58:15
现在有2个写法
select ...
from a
join b on ..
join c on ...
join d on ...
where ....
select
from a, b ,c ,d
where ....
第一种写法是 按照顺序执行的吗,
第2种写法,是怎么执行的,还是随机执行的?也就是 哪个表当做主表。
...全文
318
5
打赏
收藏
sql server JOIN 执行顺序问题
现在有2个写法 select ... from a join b on .. join c on ... join d on ... where .... select from a, b ,c ,d where .... 第一种写法是 按照顺序执行的吗, 第2种写法,是怎么执行的,还是随机执行的?也就是 哪个表当做主表。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lisa_2015
2015-04-16
打赏
举报
回复
第一个on 是SQL-92 的语法,第二个是SQL -89 的语法,数据引擎以相同的方式解释,没有什么性能差别。第一种的写法更安全,第二种容易忘记联接条件变成交叉连接。
gw6328
2015-03-25
打赏
举报
回复
书上说是从上到下。里面细节。最后的效果可能有些优化过后的。比如有where条件可能有些本根就不用参与计算了。 但是过程是一个一个join的。 一个join生成一个中间表,再用中间表join下一个,再生成一个中间表。
wanglei8
2015-03-25
打赏
举报
回复
是的,sql server会根据统计数据自动生成最高效的执行计划,这两种不同的写法会生成相同的执行计划,不过最好使用join的方式,这样看起来最直观,未来维护也更方便些。
jldzy
2015-03-25
打赏
举报
回复
那岂不是 这2 种写法是等价的,
LongRui888
2015-03-25
打赏
举报
回复
这个不一定的,要看实际的执行计划。 因为 虽然从顺序上 是a,b,c,d 但是sql server最后会根据实际的cost,来决定 到底是按照上面顺序来关联,因为 以那个表来关联另一个表,开销也是不同的,所以 sql server会选择开销最低的
sql
server
语句
执行顺序
注:
sql
server
不同于其他编程预言的最明显特征是处理代码的顺序。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只有最后一步生成的表...
SQL
Server
中
SQL
语句
执行顺序
SQL
Server
中
SQL
语句
执行顺序
Sql
Server
中
sql
执行顺序
对于一条
Sql
语句(主要指的是查询语句)的
执行顺序
,很多开发人员并不是十分的了解,哪怕已经工作几年的所谓高级开发人员也是一样,对于他们来说,只关心最终得到的结果,并不关心中间的过程,那么了解
Sql
Server
的...
三、谈谈
SQL
Server
中
Sql
执行的顺序
SQL
语句查询
执行顺序
[
Sql
Server
] 性能优化实战-
join
与where条件
执行顺序
问题
起源于测试人员测一个多条件检索的性能时,发现按某个条件查询会特别慢。对应的
sql
语句简化为: select * from ta a,tb b where a.bid=b.id and a.col1='xx' and b.col2='yy' and dbo.func(a.col3,'zz')
MS-SQL Server
34,837
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章