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
表格顺序是否有性能优势?
不,没有。
大多数(如果不是全部)DBMS使用基于成本的优化器。您指定语句的顺序不会影响执行速度。
Oracle SQL基于成本的优化
Oracle的基于成本的SQL优化器(CBO)是Oracle的一种非常复杂的组件,它控制着每个Oracle查询的执行。CBO已经发展成为世界上最复杂的软件组件之一,它具有评估任何SQL语句并为该语句生成“最佳”执行计划的艰巨工作。
您的两个语句将生成 相同的执行计划 ,因此具有相同的性能特征。请注意,费用将基于可用的统计数据。更新的统计信息对于优化器能够生成最有效的执行计划非常重要。