Комментарии 21
Не знаю какое review JetBrains делает для плагинов, но я бы в любом случае по дефолту не доверял плагину, скачанному не из официального стора.
Спасибо за описание внутренностей плагина, как раз было интересно как можно самому сделать, а документация что-то у них не сильно наглядная
А что сервис делает сверх стандартных 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/
Я правильно понял, что для анализа запроса он отправляется на какой-то сторонний сервер, ещё и где-то в России? Тогда сразу масса вопросов.
Как можно сделать анализ запроса не имея под рукой схему базы данных?
Как можно сделать анализ запроса не имея под рукой самих данных (ведь использование индексов сильно зависит от количества строк в таблице, например иногда выгоднее делать Full Scan)?
Сливается ли это всё на российский сервер?
А если нет, точность таких анализов и сопутствующих "советов по оптимизации" вероятно мизерная.
В идее есть стандартный встроенный плагин для построения плана запроса (он даже на ваших скриншотах виден). Насколько есть смысл рисковать словом данных непонятно куда вместо использования этого плагина?
Давайте отвечу я, поскольку вопросы больше касаются сервиса, нежели плагина.
Если вас напрягает "сервер где-то в России", то можете настроить отправку из плагина на зеркало explain-postgresql.com "где-то в Amazon" или развернуть self-hosted версию где-то на собственных мощностях и отправлять туда.
Схема БД несложно восстанавливается на основании данных из плана, но она нужна только для принципиальных изменений алгоритма работы запроса, как вот тут, например.
Большинство проблем производительности запроса легко определяется на основании одного лишь плана, и решения там - типовые, в том числе и насчет индексов.
Какой подход теперь у JB, такая и оплата. Уважения к ним больше нет от слова совсем и совесть от поднятия пиратского флага совсем не мучает.
Плагин для анализа планов PostgreSQL в IDE JetBrains и его разработка