Sql 使用哪个字段执行连接以提高性能是否重要?

Sql 使用哪个字段执行连接以提高性能是否重要?,sql,join,select,Sql,Join,Select,join语句中字段的顺序是否重要?这会提高性能吗 比如说, Select * from TABLEA left join TABLEB on TABLEA.NUM_0 = TABLEB.NUM_0 vs 场上的顺序真的重要吗?对于连接的多个and语句,可以使用相同的问题 谢谢。假设你的意思是两个ON子句相同,那么不,没关系。SQL实际上被“编译”到一个执行计划中,在该计划中,这些类型的差异并不重要。至于这两个连接条件: on TABLEA.NUM_0 = TABLEB.NUM on TABL

join语句中字段的顺序是否重要?这会提高性能吗

比如说,

Select * 
from TABLEA
left join TABLEB on TABLEA.NUM_0 = TABLEB.NUM_0
vs

场上的顺序真的重要吗?对于连接的多个and语句,可以使用相同的问题


谢谢。

假设你的意思是两个ON子句相同,那么不,没关系。SQL实际上被“编译”到一个执行计划中,在该计划中,这些类型的差异并不重要。

至于这两个连接条件:

on TABLEA.NUM_0 = TABLEB.NUM
on TABLEB.NUM_0 = TABLEA.NUM
条件不同(在两个表中使用不同的列),因此查询不同,并可能产生不同的结果

现在,如果你的意思是:

on TABLEA.NUM_0 = TABLEB.NUM
on TABLEB.NUM   = TABLEA.NUM_0

这里的条件是等价的。反转操作数是否会对数据库产生影响?不。在算术中,相等是一种交换运算——数据库也是如此。查询计划者理解这一点,并将这两个表达式视为完全相同的东西。

没有
where
子句?对不起,ON子句。同样的想法。一旦编译到执行计划中,顺序无关紧要。答案已更新。清除后,这将成为常见问题解答。在考虑发帖之前,请先阅读您的课本和/或手册,并在谷歌上搜索任何错误消息或您的问题/问题/目标的许多清晰、简洁和准确的措辞,包括或不包括您的特定字符串/名称和网站:stackoverflow.com&tags;阅读许多答案。如果你发布一个问题,用一句话作为标题。反思你的研究。请参阅文本上方的投票箭头鼠标(&T)。我正在使用SQL Server并修复了我的问题。GMB在其回答的后面部分能够回答这一问题。谢谢。这表明没有关于查询的含义或性能的研究。如果存在结果差异,那么除了重写查询的含义,答案是什么?你不需要我们。询问你的期望没有达到的地方&为什么或者你在演讲中被困在哪里,试图自己回答这个问题&为什么。另外,您的描述仍然不清楚,尽管您的示例显示了某种重新排序的感觉。函数顺序、逻辑运算符和联接操作数以及联接的顺序都是常见问题。性能的基础也是如此。PS请通过编辑澄清,而不是评论。每个帖子问1个问题。请参阅学习使用@x通知一个非唯一非海报评论者x回复评论。
on TABLEA.NUM_0 = TABLEB.NUM
on TABLEB.NUM   = TABLEA.NUM_0