在Oracle中查看执行计划可以通过以下几种方法:
使用PL/SQL Developer工具 :打开PL/SQL Developer,编写SQL代码后,按F5键,工具会自动打开执行计划窗口显示执行计划。
使用SQL*Plus命令
:
使用`EXPLAIN PLAN FOR`命令生成执行计划,然后使用`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)`查看执行计划。
若要查看最近执行的查询语句的执行计划,可以使用`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR)`。
若要查看特定SQL的执行计划,可以使用`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id/hash_value', child_cursor_number, 'advanced'))`。
若要查看指定SQL的所有历史执行计划,可以使用`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_awr('sql_id'))`。
使用DBMS_XPLAN包:
`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)`显示最近执行的查询语句的执行计划。
`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id/hash_value', child_cursor_number, 'advanced'))`显示指定SQL的执行计划。
`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_awr('sql_id'))`显示指定SQL的所有历史执行计划。
使用图形化数据库连接工具:
如DBeaver,通过工具界面选择要查看执行计划的SQL,然后点击解释执行计划即可看到执行计划。
使用`SET AUTOTRACE`命令:
在SQL*Plus中,使用`SET AUTOTRACE ON`命令,后续所有SQL语句的执行计划、执行结果和静态统计数据都会输出。
执行计划中的一些重要列字段包括:
Cost:
估计的CPU消耗,单位是n%。
Cardinality:估计的返回结果集行数,等价于Rows。
Bytes:执行该步骤后返回的字节数。
Time:估计的当前操作所需的时间。
执行计划显示了查询执行时的访问路径,包括物理读取数据的方式(如全表扫描、索引扫描等),以及执行顺序。通过分析执行计划,可以评估SQL语句的执行效率并找到潜在的优化点。