以下查询是针对oracle的HR schema完成的。我想逐步了解哪条指令首先执行,最重要的是,首先评估SELECT
语句。
SELECT name, salary, dept_id
FROM employee
WHERE salary >
( SELECT AVG(salary) FROM employee
WHERE dept_no =
(SELECT dept_no FROM employee
WHERE last_name =
( SELECT last_name FROM employee
WHERE salary > 50000))) ;
PS:我知道这个查询可能无效,但这不是重点。我想知道的是执行指令的顺序。
答案 0 :(得分:1)
请查看查询的解释计划,它将提供有关oracle如何执行查询的详细信息。
explain plan for <sql query>
select * from table(dbms_xplan.display);
有关解释计划的详细信息,请参阅http://www.dwbiconcepts.com/database/22-database-oracle/26-oracle-query-plan-a-10-minutes-guide.html。