Улучшения визуального / отладки для планов объяснения Oracle SQL?

#sql #oracle #eclipse-plugin #sql-execution-plan

#sql #Oracle #eclipse-плагин #sql-execution-plan

Вопрос:

Я использую Eclipse (и его плагин Data Tools) для разработки DB / BI и хотел бы получить еще немного визуальной / отладочной помощи при изучении огромных планов объяснения, например, до 500 строк, например:

 ----------------------------------------------------------------------------------------------------------------------------------------------
 | Id  | Operation                                             | Name                         | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
 ----------------------------------------------------------------------------------------------------------------------------------------------
 |   0 | SELECT STATEMENT                                      |                              |  4077K|    21G|       |  7224K  (3)| 00:04:43 |
 |   1 |  SORT AGGREGATE                                       |                              |     1 |    15 |       |            |          |
 |*  2 |   TABLE ACCESS BY INDEX ROWID BATCHED                 | TAB1                         |     1 |    15 |       |     2   (0)| 00:00:01 |
 |*  3 |    INDEX RANGE SCAN                                   | IDX_FK_1111111111            |     1 |       |       |     1   (0)| 00:00:01 |
 |   4 |  SORT AGGREGATE                                       |                              |     1 |    15 |       |            |          |
 |*  5 |   TABLE ACCESS BY INDEX ROWID BATCHED                 | TAB1                         |     1 |    15 |       |     2   (0)| 00:00:01 |
 |*  6 |    INDEX RANGE SCAN                                   | IDX_FK_2222222222            |     1 |       |       |     1   (0)| 00:00:01 |
 |   7 |  WINDOW SORT                                          |                              |   153 |  5967 |       |    32   (7)| 00:00:01 |
 |*  8 |   HASH JOIN                                           |                              |   153 |  5967 |       |    31   (4)| 00:00:01 |
 ...
  

Было бы неплохо остаться в Eclipse, чтобы мне не приходилось настраивать / менять среды.

(Я думаю, у разработчика SQL и / или у Toad был какой-то графический просмотрщик explain plan с иерархической функциональностью свертывания / расширения, где также доступен какой-то плагин Eclipse от Toad, который мне не понравился, потому что он был довольно навязчивым в отношении манипулирования проектом.)

Но, пожалуйста, не стесняйтесь добавлять другие ответы для похожих инструментов и, возможно, скриншоты для пользователей с аналогичными потребностями, но в разных средах.

Комментарии:

1. У меня были проблемы с плагином OEPE Eclipse от Oracle , но у него была хорошая функция текстового контекстного меню и графического плана объяснения: oracle.com/technetwork/developer-tools/eclipse/documentation /…

Ответ №1:

Что вы действительно хотите использовать, так это SQL Monitor.

https://sqlmaria.com/2017/08/01/getting-the-most-out-of-oracle-sql-monitor/

Комментарии:

1. Спасибо! выглядит неплохо. хотя кажется, что его нужно настроить (как сервер веб-приложений) или, по крайней мере, запустить на хосте oracle, что может быть нелегко?

2. Вам не нужно это настраивать. Он включен по умолчанию. Если вы хотите наблюдать за запросами в реальном времени, вам нужно использовать либо EM, либо EMEcpress. Но если вы просто хотите просмотреть конечный результат, просто сгенерируйте HTML-файл и откройте в браузере 🙂

Ответ №2:

С помощью следующего простого регулярного выражения поиска / замены строк, применяемого к текстовому плану объяснения, можно получить хороший результат:
(например, включение / нажатие Editbox Eclipse Plugin Button в редакторе (представлении), содержащем план объяснения, в Eclipse — любой другой редактор с аналогичными функциями отображения / выделения блоков также подойдет)

Найти: ^( |[^|] d |)(s )

заменить: $2$1

выдаст следующий вывод (переместив операционные отступы в начало каждой строки):

введите описание изображения здесь

чтобы получить такую раскраску, нужно настроить Editbox ( Eclipse -> Window -> Preferences-> Editbox -> Others ) таким образом:

  • Highlight selected box:
    • color <Custom> <Red> , width <2>
  • Color levels: 14
  • Gradient tool: (например) from color <white> to amp; <dark green> (и, возможно, push Generate )

введите описание изображения здесь

(Кстати: при наведении курсора мыши на такой блок можно нажать, ALT Z что выделит текстовый блок целиком, например, для удобства копирования / вставки. (для SQLS с соответствующим отступом также полезно для частичного выполнения кода))