📜  oracle 显示执行计划 - SQL (1)

📅  最后修改于: 2023-12-03 14:44:56.655000             🧑  作者: Mango

Oracle 显示执行计划 - SQL

在 Oracle 数据库中,我们可以使用 EXPLAIN PLANDBMS_XPLAN.DISPLAY 语句来显示 SQL 语句的执行计划,以帮助我们分析和优化 SQL 查询语句。

EXPLAIN PLAN 语句

EXPLAIN PLAN 语句将分析 SQL 语句,并返回查询计划。以下是使用 EXPLAIN PLAN 语句的示例:

EXPLAIN PLAN FOR
SELECT * FROM employees WHERE department_id = 10;

使用 EXPLAIN PLAN 语句后,我们需要使用 SELECT 语句和 TABLE 函数查询执行计划:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

运行上面的语句后,将显示查询语句的执行计划。下面是一个示例输出:

Plan hash value: 3956160938

------------------------------------------------------------------------------------------
| Id  | Operation         | Name      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |           |     1 |   114 |     1   (0)| 00:00:01 |       |       |
|*  1 |  TABLE ACCESS FULL| EMPLOYEES |     1 |   114 |     1   (0)| 00:00:01 |       |       |
------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("DEPARTMENT_ID"=10)

在上面的执行计划中,操作 ID 为 1 的是 TABLE ACCESS FULL(全表扫描)操作,表示在 EMPLOYEES 表中扫描所有行来获取部门 ID 为 10 的员工,这是一个代价很低的操作。

DBMS_XPLAN.DISPLAY 语句

另外一个使用 DBMS_XPLAN.DISPLAY 语句的例子如下:

SELECT PLAN_TABLE_OUTPUT FROM TABLE(DBMS_XPLAN.DISPLAY);

这将返回查询语句的执行计划,结果与使用 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY) 语句类似。

总结

使用 EXPLAIN PLANDBMS_XPLAN.DISPLAY 可以让我们分析和优化 SQL 查询语句的执行计划,以提高 SQL 查询的性能。