在 Oracle 数据库中,查看 SQL 语句的执行计划可以通过以下几种方法:
使用 AUTOTRACE
AUTOTRACE
提供一个简单的方法来查看 SQL 语句的执行计划和统计信息。你可以在 SQL*Plus 中使用它:
- 启用 AUTOTRACE:
SET AUTOTRACE ON
-
执行你的 SQL 语句,Oracle 会自动显示执行计划和统计信息。
-
你也可以使用
SET AUTOTRACE TRACEONLY
只显示执行计划和统计信息而不显示查询结果:
SET AUTOTRACE TRACEONLY
使用 EXPLAIN PLAN
EXPLAIN PLAN
命令可以生成并显示 SQL 语句的执行计划。步骤如下:
- 生成执行计划并将其插入到一个表中:
EXPLAIN PLAN FOR your_sql_statement;
例如:
EXPLAIN PLAN FOR SELECT * FROM employees WHERE employee_id = 100;
- 查看生成的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
使用 DBMS_XPLAN.DISPLAY_CURSOR
为了查看真实的执行计划(已执行的语句的实际执行计划),你可以使用 DBMS_XPLAN.DISPLAY_CURSOR
包。步骤如下:
-
执行你的 SQL 语句。
-
找到执行的 SQL 语句的 SQL_ID,可以通过以下查询找到:
SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE 'your_sql_text%';
- 使用
DBMS_XPLAN.DISPLAY_CURSOR
显示真实的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('sql_id', child_number, 'ALLSTATS LAST'));
例如:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('d1s3gf7g8sh9d', 0, 'ALLSTATS LAST'));
使用 SQL Developer
Oracle SQL Developer 提供了一个图形界面来查看执行计划:
- 打开 SQL Developer 并连接到数据库。
- 输入并执行你的 SQL 语句。
- 在结果窗口中,选择 "Execution Plan" 选项卡,可以看到 SQL 语句的执行计划。
总结
AUTOTRACE
简单快捷,适用于快速查看计划和统计信息。EXPLAIN PLAN
可以在不实际执行语句的情况下查看计划。DBMS_XPLAN.DISPLAY_CURSOR
提供了真实的执行计划和详细的统计信息。- SQL Developer 图形界面友好,适合可视化查看。
根据你的需求选择合适的方法来查看 Oracle 的真实执行计划。
其他参考:https://www.cnblogs.com/kingsleylam/p/11617890.html
标签:语句,DBMS,AUTOTRACE,计划,SQL,Oracle,执行 From: https://www.cnblogs.com/shinji/p/18321329