连接顺序对连接计划的影响

通过指定连接顺序,影响的可能不只是表连接的方法。

例如:考虑以下查询:
SELECT --+ORDERED, AVOID_FULL(e)
* FROM employee e, department d
WHERE e.dept_no = d.dept_no AND e.salary > 5000
在此示例中,优化器选择用散列连接来连接表。但是,如果您对顺序进行安排以便第二个表为雇员(且必须被索引访问),那么散列连接就不可行了。
SELECT --+ORDERED, AVOID_FULL(e)
* FROM department d, employee e
WHERE e.dept_no = d.dept_no AND e.salary > 5000;

在这种情况下,优化器选择嵌套循环连接。