加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

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

发布时间:2020-05-24 09:01:24 所属栏目: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会彻底改变逻辑。

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

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

(编辑:安卓应用网)

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

    推荐文章
      热点阅读