连接 - 条件差异:放置在左侧或右侧

时间:2017-01-17 14:59:18

标签: sql-server performance join sql-server-2012

在以下两个查询中,唯一的区别是条件被交换  会不会有任何性能差异?
哪一个是可取的?我在网上搜索没有运气。请帮忙。

第一次查询:

boolean?

第二次查询:

select order_date, order_amount 
 from customers 
 join orders 
    on customers.customer_id = orders.customer_id 
 where customer_id = 3 

1 个答案:

答案 0 :(得分:1)

Prdp的评论很好地总结了答案。答案是不。但要进一步澄清并提供更多信息:

SQL Server使用TSQL,它是一种声明性语言。要从this帖子中窃取,声明的定义是:

  

表示期望的计算结果的编程范例   没有描述实现它的步骤(也缩写为   "描述什么,而不是")

这基本上转化为您告诉SQL Server您想要返回的内容并为连接之类的内容提供逻辑,SQL Server将找出最佳方法。如果必须重新排列连接,请进行隐式转换,以便生成最佳计划。