Как мне увидеть план выполнения Oracle в SQuirrel SQL? - PullRequest
0 голосов
/ 29 мая 2018

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

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

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

1 Ответ

0 голосов
/ 29 мая 2018

Простой способ, независимый от вашего клиента 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]
...