如何在 SQuirrel SQL 中查看 Oracle 执行计划?
How do I see the Oracle execution plan in SQuirrel SQL?
我正在尝试使用 SQuirreL SQL 3.6.
获取 Oracle (11) 的执行计划
我可以在 "Results" 选项卡旁边看到一个 "Explain Plan" 选项卡,但它始终是空的。
当我第一次点击它时,我得到一个对话框,要求创建 PLAN_TABLE
有效,但 "Explain Plan" 选项卡中的 table 保持为空。
我试图在我的查询之前添加 explain plan for
但这给了我一个 Error: ORA-00905: missing keyword
独立于您的 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 / DUAL@SEL
Predicate Information (identified by operation id):
---------------------------------------------------
1 - storage("DUMMY"='X')
filter("DUMMY"='X')
Column Projection Information (identified by operation id):
-----------------------------------------------------------
1 - "DUMMY"[VARCHAR2,1]
我正在尝试使用 SQuirreL SQL 3.6.
获取 Oracle (11) 的执行计划我可以在 "Results" 选项卡旁边看到一个 "Explain Plan" 选项卡,但它始终是空的。
当我第一次点击它时,我得到一个对话框,要求创建 PLAN_TABLE
有效,但 "Explain Plan" 选项卡中的 table 保持为空。
我试图在我的查询之前添加 explain plan for
但这给了我一个 Error: ORA-00905: missing keyword
独立于您的 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 / DUAL@SEL
Predicate Information (identified by operation id):
---------------------------------------------------
1 - storage("DUMMY"='X')
filter("DUMMY"='X')
Column Projection Information (identified by operation id):
-----------------------------------------------------------
1 - "DUMMY"[VARCHAR2,1]