Oracle EXPLAIN PLAN FOR 不返回任何内容

Jac*_*ack 3 sql oracle jupyter-notebook

我在 Oracle 数据库上运行以下查询:

EXPLAIN PLAN FOR
SELECT *
FROM table_name
Run Code Online (Sandbox Code Playgroud)

但是,它没有返回任何数据。当我删除该EXPLAIN PLAN FOR子句时,查询确实按预期运行。谢谢您的帮助!

如果相关的话,我将通过 Teradata 和 Jupyter IPython 笔记本访问数据库。

Luk*_*zda 6

来自使用解释计划

PLAN_TABLE 会自动创建为全局临时表,用于保存所有用户的 EXPLAIN PLAN 语句的输出。PLAN_TABLE 是默认示例输出表,EXPLAIN PLAN 语句将在其中插入描述执行计划的行

EXPLAIN PLAN FOR  SELECT last_name FROM employees;
Run Code Online (Sandbox Code Playgroud)

这解释了计划到PLAN_TABLE表中的情况。然后您可以从 PLAN_TABLE 中选择执行计划。

显示 PLAN_TABLE 输出

  • UTLXPLS.SQL
  • SQL
  • DBMS_XPLAN.DISPLAY 表函数

我建议使用:

EXPLAIN PLAN FOR SELECT * FROM table_name;

SELECT * FROM TABLE(dbms_xplan.display);
Run Code Online (Sandbox Code Playgroud)