如何在SQuirrel SQL中查看Oracle执行计划?

时间:2018-05-29 08:15:42

标签: oracle sql-execution-plan squirrel-sql

我正在尝试使用SQuirreL SQL 3.6获取Oracle(11)的执行计划。

我可以看到"解释计划" "结果"旁边的标签选项卡,但它总是空的。 当我第一次点击它时,我得到了一个对话框,要求创建PLAN_TABLE,但是在"解释计划"标签保持空白。

我尝试在查询之前添加explain plan for,但这给了我一个Error: ORA-00905: missing keyword

1 个答案:

答案 0 :(得分:1)

独立于SQL客户端的简单方法:

EXPLAIN PLAN  SET STATEMENT_ID = 'yourTag' into   plan_table  FOR
select .... your query here ... from tab;
---    
SELECT * FROM table(DBMS_XPLAN.DISPLAY('plan_table', 'yourTag','ALL'));

您可以通过查询获得完整的执行计划。 PLAN_TABLE必须存在且必须授予您的用户读写权限。

查询的示例输出

select * from dual where dummy = 'X';



Plan hash value: 272002086

----------------------------------------------------------------------------------
| Id  | Operation                 | Name | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------
|   0 | SELECT STATEMENT          |      |     1 |     2 |     2   (0)| 00:00:01 |
|*  1 |  TABLE ACCESS STORAGE FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |
----------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1 / DUAL@SEL$1

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

   1 - storage("DUMMY"='X')
       filter("DUMMY"='X')

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - "DUMMY"[VARCHAR2,1]