不,重新排列 JOIN 订单不应影响性能。MSSQL(与其他 DBMS 一样)有一个查询优化器,它的工作是为任何给定的查询找到最有效的查询计划。一般来说,这些都做得很好 - 所以你不太可能轻易击败优化器。
也就是说,他们偶尔会弄错。这就是阅读执行计划发挥作用的地方。您可以添加联接提示来告诉MSSQL如何加入你的表(此时,订货做事情)。您通常会从最小到最大的表进行排序(尽管使用 aFULL JOIN可能不太重要)并遵循连接类型的经验法则。
由于您正在执行FULL JOINS,您基本上是从磁盘读取整个 4 个表。那很可能会非常昂贵。您可能需要重新检查问题,看看是否可以用不同的方式来完成。



