Как мне увидеть план выполнения Oracle в SQuirrel SQL?

Я пытаюсь получить план выполнения для Oracle (11), используя SQuirreL SQL 3.6.

Я вижу вкладку "Объяснить план" рядом с вкладкой "Результаты", но она всегда пуста. Когда я щелкнул по нему в первый раз, у меня появилось диалоговое окно с просьбой создать PLAN_TABLE это сработало, но таблица на вкладке "Объяснить план" остается пустой.

Я пытался добавить explain plan for до моего запроса, но это дало мне Error: ORA-00905: missing keyword

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]
Другие вопросы по тегам