SQL 嵌套查询执行顺序
Posted
技术标签:
【中文标题】SQL 嵌套查询执行顺序【英文标题】:SQL nested queries execution order 【发布时间】:2013-12-17 12:55:44 【问题描述】:以下查询是针对 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:我知道这个查询可能无效,但这不是重点。我想知道的是指令的执行顺序。
【问题讨论】:
【参考方案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了解详细说明计划。
【讨论】:
以上是关于SQL 嵌套查询执行顺序的主要内容,如果未能解决你的问题,请参考以下文章