小编典典

sql join语句中的表顺序是否有任何意义

sql

sql join语句中表的顺序是否有任何意义。例如

SELECT dept_name, emp_name 
FROM   Employee 
INNER JOIN Department ON Employee.dept_id = Department.dept_id

SELECT dept_name, emp_name 
FROM Department 
INNER JOIN Employee  ON Employee.dept_id = Department.dept_id

表格顺序是否有性能优势?


阅读 232

收藏
2021-03-23

共1个答案

小编典典

不,没有。

大多数(如果不是全部)DBMS使用基于成本的优化器。您指定语句的顺序不会影响执行速度。

Oracle SQL基于成本的优化

Oracle的基于成本的SQL优化器(CBO)是Oracle的一种非常复杂的组件,它控制着每个Oracle查询的执行。CBO已经发展成为世界上最复杂的软件组件之一,它具有评估任何SQL语句并为该语句生成“最佳”执行计划的艰巨工作。

您的两个语句将生成 相同的执行计划
,因此具有相同的性能特征。请注意,费用将基于可用的统计数据。更新的统计信息对于优化器能够生成最有效的执行计划非常重要。

2021-03-23