Как стать автором
Обновить

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

Не знаю какое review JetBrains делает для плагинов, но я бы в любом случае по дефолту не доверял плагину, скачанному не из официального стора.

Open source же. Бери да собирай.

Согласен. Я и написал, что ПО, не собранное тобой, а скачанное из неизвестного источника, не заслуживает доверия.

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

Что именно показалось затруднительным в документации?

Ну она больше справочник, а хотелось бы "вот hello-world плагин, он устроен вот так, его можно расширять вот так", потому что я далек от написания таких компонентов, и по справочнику понять общую концепцию разработки сложно.

Там есть пошаговый туториал создания языкового плагина с нуля.

А что сервис делает сверх стандартных explain analyze?

В базовой версии: корректно вычисляет потребление ресурсов на каждом узле с учетом вложенности, подсказывает, как можно устранить неэффективность в запросе, какие индексы стоит добавить в БД и наглядно это все показывает.

В расширенной версии добавляется возможность массового сквозного анализа всего лога сервера PostgreSQL, в том числе в онлайн-режиме.

Всегда было интересно как находятся ресурсы на написание статей, но не находятся на поддержание плагина. Актуальная версия ide не принимает его.

Какая у Вас ide и версия?

тоже ловлю ошибку на DataGrip 2023.3.2 (macOS):
java.lang.NoClassDefFoundError: org/json/JSONObject
at com.mgorkov.api.ExplainApiService.beautifier(ExplainApiService.java:47)

Проверяли на macOS Ventura 13.3.1 и DataGrip 2023.3.2 , ошибок нет.

На какой версии macOS запускаете?

M1 - macOS Sonoma Version 14.2.1 (23C71)

На нашем M1 Sonoma все работает, https://youtu.be/_OH91vkcBZY

Возможно, конфликтует с другими плагинами. Можете прислать список установленных плагинов на почту me.gorkov@tensor.ru ?

Заменили библиотеку json на встроенную в jetbrains, попробуйте новую версию https://explain.tensor.ru/downloads-plugins/

да, теперь всё гуд. Спасибо

Я правильно понял, что для анализа запроса он отправляется на какой-то сторонний сервер, ещё и где-то в России? Тогда сразу масса вопросов.

  1. Как можно сделать анализ запроса не имея под рукой схему базы данных?

  2. Как можно сделать анализ запроса не имея под рукой самих данных (ведь использование индексов сильно зависит от количества строк в таблице, например иногда выгоднее делать Full Scan)?

Сливается ли это всё на российский сервер?
А если нет, точность таких анализов и сопутствующих "советов по оптимизации" вероятно мизерная.

В идее есть стандартный встроенный плагин для построения плана запроса (он даже на ваших скриншотах виден). Насколько есть смысл рисковать словом данных непонятно куда вместо использования этого плагина?

Давайте отвечу я, поскольку вопросы больше касаются сервиса, нежели плагина.

  1. Если вас напрягает "сервер где-то в России", то можете настроить отправку из плагина на зеркало explain-postgresql.com "где-то в Amazon" или развернуть self-hosted версию где-то на собственных мощностях и отправлять туда.

  2. Схема БД несложно восстанавливается на основании данных из плана, но она нужна только для принципиальных изменений алгоритма работы запроса, как вот тут, например.

  3. Большинство проблем производительности запроса легко определяется на основании одного лишь плана, и решения там - типовые, в том числе и насчет индексов.

Какой подход теперь у JB, такая и оплата. Уважения к ним больше нет от слова совсем и совесть от поднятия пиратского флага совсем не мучает.

Да, спасибо им за ценный урок и всего хорошего.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий