正如所写,它们是相同的。查尔斯的出色回答。
如果您想知道它们是否会有不同的执行计划,那么只需在 SSMS 中显示执行计划。
至于速度,将连接中使用的列编入索引。
维护索引 - 碎片索引几乎没有那么有效。
查询计划并不总是相同的。
查询优化器保留统计信息,并且随着数据配置文件的更改,最佳计划可能会更改。
几千行不是很多。
一旦达到数百万,然后调整索引和语法(带有提示)。
有时您必须投入数百万美元才能获得足够的数据进行调整。
还有一个等效的 UNION 运算符,有时速度更快。
连接提示 Loop 不是对称的,因此在这种情况下,以下查询计划是不同的,但它们仍然是相同的结果。
如果一个是 PK 表,我总是把它放在第一位。
在这种情况下,第一个速度是第二个的两倍。
select top 10 docSVsys.sID, docMVtext.fieldID
from docSVsys
inner loop join docMVtext
on docMVtext.sID = docSVsys.sID
where docSVsys.sID < 100
order by docSVsys.sID, docMVtext.fieldID
select top 10 docSVsys.sID, docMVtext.fieldID
from docMVtext
inner loop join docSVsys
on docMVtext.sID = docSVsys.sID
where docSVsys.sID < 100
order by docSVsys.sID, docMVtext.fieldID
高级查询调优概念