Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте визуализатор плана запроса в расширении PostgreSQL для проверки выходных данных PostgreSQL EXPLAIN без выхода из редактора. Вы можете создать план из редактора запросов или панели результатов запросов PostgreSQL или открыть существующие выходные данные JSON или TEXT из редактора. Визуализатор работает одинаково в Visual Studio Code и Cursor.
Необходимые условия
- Установленное расширение PostgreSQL.
- Активное подключение к серверу PostgreSQL, если вы хотите создать динамический план из редактора запросов или панели результатов запросов PostgreSQL.
- Необязательный помощник по искусственному интеллекту, если требуется анализ с помощью ИИ: установка GitHub Copilot в Visual Studio Code или использование встроенного ИИ в Cursor.
- Необязательные
EXPLAINвыходные данные уже открываются в редакторе, если вы хотите импортировать сохраненный план без подключения к базе данных.
Выберите, как открыть план
Используйте точку входа, соответствующую рабочему процессу:
- Редактор запросов: выберите Визуализировать план запроса (PostgreSQL) на панели инструментов редактора. Если сначала не выбрать текст, расширение использует текущее содержимое редактора.
- Панель результатов запросов PostgreSQL: выполните запрос, затем на панели инструментов панели результатов запросов PostgreSQL выберите Визуализировать план запроса, чтобы просмотреть запрос, который сформировал этот результирующий набор.
- Импортированный план: Откройте любую вкладку редактора, содержащую вывод плана PostgreSQL, затем запустите команду PGSQL: Visualize Query Plan from Editor в палитре команд.
Создание плана из динамического запроса
- Откройте SQL-файл, который нужно проверить в редакторе запросов.
- Подключитесь к целевой базе данных.
- Выберите утверждение, которое хотите проанализировать. Если выделение остается пустым, расширение использует текущее содержимое редактора.
- Выберите план визуализации запроса (PostgreSQL) на панели инструментов редактора. Сначала можно запустить запрос, а затем выбрать план визуализации запроса на панели результатов запросов PostgreSQL .
- В Настройка плана запросов выберите нужный формат и параметры, а затем нажмите Enter.
- Просмотрите план в визуализаторе.
Настройка параметров плана запроса
Средство выбора плана запросов позволяет выбрать формат выходных EXPLAIN данных и параметры для выполнения.
| Опция | Что меняется |
|---|---|
| JSON | Возвращает структурированные выходные данные плана, которые лучше всего работают в визуальных представлениях. |
| ТЕКСТ | Возвращает выходные данные PostgreSQL в виде обычного текста EXPLAIN и сохраняет источник в представлении источника. |
| АНАЛИЗ | Выполняет запрос и включает фактическую статистику времени выполнения. |
| Буферы | Добавляет статистику использования буфера. При выборе автоматически включается АНАЛИЗ. |
| ВРЕМЯ | Добавляет фактические данные о времени. При выборе автоматически включается АНАЛИЗ. |
| WAL | Добавляет статистику использования WAL. При выборе автоматически включается АНАЛИЗ. |
| ПОДРОБНО | Добавляет дополнительные выходные данные, такие как сведения о схеме и столбце. |
| РАСХОДЫ | Включает предполагаемые значения начальной и общей стоимости. |
| ПАРАМЕТРЫ | Включает параметры планировщика, которые отличаются от значений по умолчанию. |
Предостережение
EXPLAIN ANALYZE выполняет запрос. Если инструкция изменяет данные, например INSERT, UPDATEDELETEили TRUNCATE, расширение отображает запрос подтверждения перед продолжением.
Открытие сохраненного плана из редактора
- Откройте вкладку редактора, содержащую выходные данные PostgreSQL
EXPLAINв формате JSON или TEXT. - Откройте палитру команд (CTRL+SHIFT+P).
- Запустите PGSQL: Визуализация плана запроса из редактора.
- Просмотрите импортированный план в визуализаторе.
Для этого рабочего процесса не требуется активное подключение к базе данных. Команда считывает текущее содержимое редактора, поэтому ее можно использовать с скопированными выходными данными плана, сохраненными .json или .txt файлами или текстом плана, вставленным в редактор с нуля.
Переключение между режимами
Используйте селектор представления на панели инструментов для перемещения между представлением дерева, представлением Icicle, представлением таблицы и исходным представлением.
Древовидное представление
Представление дерева открывается по умолчанию. Используйте его, если требуется схема плана выполнения по узлам.
- Используйте элементы управления масштабом, чтобы увеличить или уменьшить масштаб, сбросить вид или подогнать план по размеру окна.
- Используйте панель параметров, чтобы изменить направление макета и метрику цвета, которая выделяет дорогие или необычные узлы.
- Выберите узел, чтобы открыть панель сведений.
- Щелкните правой кнопкой мыши узел, чтобы перейти к другому представлению или проанализировать этот узел с помощью помощника по искусственному интеллекту.
Представление таблицы
Используйте представление таблицы , если вы хотите сортировать, выполнять поиск и сравнивать сразу несколько узлов.
- План преобразуется в сортируемую таблицу, а не в сворачиваемое дерево.
- Поле поиска отображается только в представлении таблицы.
- Поиск выполняется по типу узла, имени отношения, имени индекса, псевдониму, тексту фильтра и имени подплана.
- Используйте предварительно настроенный выбор, чтобы сосредоточиться на производительности, оценки, эффективности или ввода-вывода или настройке видимых столбцов метрик.
Представление icicle
Используйте представление «Icicle», когда вам нужна визуальная сводка во всю ширину, показывающая, где сосредоточены затраты, время или использование буфера.
- Представление Icicle — это отдельное представление, а не область в представлении дерева.
- Используйте панель параметров для переключения предустановок, изменения метрики ширины, изменения цветовой метрики и переключения между самостоятельной и общей областью, где поддерживается.
- Наведите указатель мыши на блок, чтобы проверить метрики, или щелкните правой кнопкой мыши блок, чтобы открыть сведения или перейти к другому представлению.
Исходное представление
Используйте исходное представление , если требуется вывод исходного плана.
- Выберите параметры для переключения между деревом и текстовым режимом.
- На панели показано, является ли импортированный или созданный источник JSON или TEXT.
- Развернуть все и Свернуть все отображаются на панели инструментов, только когда активен режим исходного кода.
- В текстовом режиме план открывается в редакторе только для чтения. В режиме дерева можно проверить проанализированную структуру в виде свертывного дерева.
Выберите «Копировать план», чтобы в любой момент скопировать исходное содержимое текущего плана в буфер обмена. Планы JSON копируются в форматированном виде, а планы TEXT копируются в качестве исходного источника.
Проверка узлов плана
Выберите узел в представлении дерева, представлении таблицы или представлении Icicle , чтобы открыть панель сведений.
- Общие сведения показывают тип узла, ключевые метрики и подробные сведения об анализе для конкретного плана.
- Операции ввода-вывода отображаются, когда план включает буферные данные.
- Условия отображаются, когда узел предоставляет фильтры, условия соединения или аналогичные предикаты.
Эта панель используется для сравнения предполагаемых и фактических рабочих узлов, проверки узлов с большим объемом буфера и подтверждения того, какие предикаты ведут план.
Анализ планов с помощью помощника по искусственному интеллекту
Используйте ИИ-помощника, если хотите, чтобы расширение открыло чат анализа, используя текущий план в качестве контекста.
Анализ полного плана
- Откройте план в визуализаторе.
- Выберите "Анализ с помощью Copilot" (или "Анализ с помощью ИИ" в курсоре).
- Выберите, следует ли включать текст SQL-запроса в анализ.
- Просмотрите новый сеанс чата, который открывается в режиме агента.
Если план получен из PGSQL: Visualize Query Plan from Editor и подходящего SQL-текста пока нет, расширение может предложить вам сначала ввести запрос, чтобы у ИИ был лучший контекст.
Анализ одного узла
- Щелкните правой кнопкой мыши узел, который требуется проверить.
- Выберите "Анализ этого узла с помощью Copilot" (или "Анализ этого узла с помощью ИИ в курсоре").
- Просмотрите новый сеанс чата в режиме агента для анализа для конкретного узла.
Управление тем, включать ли текст SQL
Параметр pgsql.copilot.autoAttachQuery определяет, как расширение обрабатывает текст SQL при запуске анализа ИИ:
- Вопрос о том, следует ли включать SQL каждый раз
- Всегда включать SQL без запроса
- Никогда не включать SQL
Если вы решили включить или исключить SQL из запроса, расширение также может предложить помнить об этом для будущих сеансов.
Использование средства плана запроса в режиме агента
Визуализатор кэширует текущий план и предоставляет его ИИ-помощнику с помощью средства pgsql_query_plan или его эквивалента MCP на поддерживаемых хостах. Это средство поддерживает следующие действия:
| Действие | Используйте его для |
|---|---|
get_summary |
Получите сводку по всему плану, прежде чем переходить к деталям. |
get_node |
Проверьте один узел по идентификатору. |
get_subtree |
Проверьте узел вместе со своими потомками. |
list_nodes |
Поиск узлов по типу или минимальной стоимости. |
Если вы хотите, чтобы искусственный интеллект начал с активного запроса вместо визуализатора, используйте анализ производительности запросов из подменю "Действия запросов ИИ " редактора. Используйте визуализатор, когда вы хотите сначала проверить план самостоятельно, а затем передать точный план ВИ.
Советы по анализу производительности
- Используйте ANALYZE , если оно безопасно для выполнения инструкции. Сами по себе оценки могут скрывать неверные предположения о количестве строк.
- Сравните предполагаемые и фактические числа строк, чтобы обнаружить устаревшие статистические данные или проблемы с фильтрацией.
- Переключитесь в представление таблицы , если план велик, и вам потребуется выполнить поиск или параллельное сравнение метрик.
- Перейдите в режим источника , если вам нужен необработанный план для проблемы, проверки кода или обсуждения с коллегами.