查看Oracle执行计划以及真实执行计划

在 Oracle 数据库中,查看 SQL 语句的执行计划可以通过以下几种方法:

使用 AUTOTRACE

AUTOTRACE 提供一个简单的方法来查看 SQL 语句的执行计划和统计信息。你可以在 SQL*Plus 中使用它:

  1. 启用 AUTOTRACE:
SET AUTOTRACE ON
  1. 执行你的 SQL 语句,Oracle 会自动显示执行计划和统计信息。

  2. 你也可以使用 SET AUTOTRACE TRACEONLY 只显示执行计划和统计信息而不显示查询结果:

SET AUTOTRACE TRACEONLY

使用 EXPLAIN PLAN

EXPLAIN PLAN 命令可以生成并显示 SQL 语句的执行计划。步骤如下:

  1. 生成执行计划并将其插入到一个表中:
EXPLAIN PLAN FOR your_sql_statement;

例如:

EXPLAIN PLAN FOR SELECT * FROM employees WHERE employee_id = 100;
  1. 查看生成的执行计划:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

使用 DBMS_XPLAN.DISPLAY_CURSOR

为了查看真实的执行计划(已执行的语句的实际执行计划),你可以使用 DBMS_XPLAN.DISPLAY_CURSOR 包。步骤如下:

  1. 执行你的 SQL 语句。

  2. 找到执行的 SQL 语句的 SQL_ID,可以通过以下查询找到:

SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE 'your_sql_text%';
  1. 使用 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 提供了一个图形界面来查看执行计划:

  1. 打开 SQL Developer 并连接到数据库。
  2. 输入并执行你的 SQL 语句。
  3. 在结果窗口中,选择 "Execution Plan" 选项卡,可以看到 SQL 语句的执行计划。

总结

  • AUTOTRACE 简单快捷,适用于快速查看计划和统计信息。
  • EXPLAIN PLAN 可以在不实际执行语句的情况下查看计划。
  • DBMS_XPLAN.DISPLAY_CURSOR 提供了真实的执行计划和详细的统计信息。
  • SQL Developer 图形界面友好,适合可视化查看。

根据你的需求选择合适的方法来查看 Oracle 的真实执行计划。

其他参考:https://www.cnblogs.com/kingsleylam/p/11617890.html

posted @ 2024-07-24 17:19  SHINJI_KUN  阅读(1813)  评论(0)    收藏  举报