加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – WHERE子句更好地在IN和JOIN之前执行

发布时间:2020-12-12 07:03:42 所属栏目:MsSql教程 来源:网络整理
导读:我读过这篇文章: Logical Processing Order of the SELECT statement 在文章末尾已经写了ON和JOIN子句考虑之前的WHERE。 考虑到我们有一个拥有10 milion的主表和一个详细表(参考主表(FK)),具有50 milion的记录。我们有一个查询,根据主表中的PK只有100个记
我读过这篇文章:
Logical Processing Order of the SELECT statement

在文章末尾已经写了ON和JOIN子句考虑之前的WHERE。

考虑到我们有一个拥有10 milion的主表和一个详细表(参考主表(FK)),具有50 milion的记录。我们有一个查询,根据主表中的PK只有100个记录细节表。

在这种情况下,ON和JOIN在WHERE之前执行?我的意思是说,我们在JOIN之后有500 milion的记录,然后在哪里应用?或者先是应用,然后JOIN和ON考虑?如果第二个答案是真的,它与顶部不一致文章?

谢谢

解决方法

没关系

始终尊重逻辑处理订单:无论实际处理顺序如何

INNER JOINS和WHERE条件是有效的关联和交换(因此ANSI-89“加入在哪里”语法),所以实际的顺序并不重要

外部联接和更复杂的查询的逻辑顺序变得很重要:在OUTER表上应用WHERE会彻底改变逻辑。

同样,只要通过遵循逻辑处理顺序维护查询语义,优化器如何在内部执行并不重要。

这里的关键词是“优化”:它完全是它所说的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读