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会彻底改变逻辑。 同样,只要通过遵循逻辑处理顺序维护查询语义,优化器如何在内部执行并不重要。 这里的关键词是“优化”:它完全是它所说的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |