sql – 当表列相同时,EXCEPT的执行速度比JOIN快
要查找两个数据库之间的所有更改,我将继续加入pk上的表并使用date_modified字段选择最新记录.由于表具有相同的模式,因此使用EXCEPT会提高性能.我想用EXCEPT重写它,但我不确定EXCEPT的实现是否会在每种情况下执行JOIN.希望有人对何时使用EXCEPT有更多的技术解释.
解决方法任何人都无法告诉你,EXCEPT将永远或永远不会超过等效的OUTER JOIN.无论您如何编写意图,优化程序都将选择适当的执行计划.那就是说,这是我的指导方针: 如果满足以下条件之一,请使用EXCEPT: >查询更具可读性(这几乎总是如此). 并且以下两者都是真的: >查询产生语义相同的结果,您可以通过充分的回归测试来证明这一点,包括所有边缘情况. 值得注意的是,编写等效的EXCEPT查询可能是一个挑战,因为JOIN变得更加复杂和/或您依赖于部分列中的重复项而不是其他列.写一个NOT EXISTS等价物,虽然比EXCEPT稍微不那么易读但应该更容易实现 – 而且往往会导致一个更好的计划(但请注意,我永远不会总是说,或者永远不会,除了我刚刚做的那样). In this blog post I demonstrate at least one case where (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |