Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение PostgreSQL для Visual Studio Code включает интеграцию с GitHub Copilot, улучшая работу с базами данных за счёт разработки с поддержкой ИИ. После подключения к базе данных PostgreSQL Copilot получает доступ к контекстной информации через ваше активное подключение. Этот доступ позволяет участнику @pgsql Copilot Chat создавать точные SQL-запросы с учётом схемы базы данных и аналитические выводы, упрощая разработку и сводя к минимуму переключение контекста в Visual Studio Code.
Компонент @pgsql работает с любой базой данных, к которой может подключиться расширение, в том числе:
- Azure HorizonDB кластеры.
При подключении к кластеру HorizonDB Copilot знает о расширениях, установленных в базе данных (например, pgvector, pg_diskann, azure_ai и age) и могут создавать запросы и SQL, которые используют их.
Необходимые условия
Прежде чем начать, убедитесь, что у вас есть необходимые средства и ресурсы, скачанные и установленные.
- Visual Studio Code , установленный на компьютере.
- База данных PostgreSQL, установленная локально или размещенная в Создание кластера Azure HorizonDB.
- Расширение PostgreSQL , установленное в Visual Studio Code.
- расширение GitHub Copilot.
- Установленное расширение чата GitHub Copilot.
- Учетная запись Azure для подключения к облачным базам данных (необязательно).
Установка расширений GitHub Copilot и GitHub Copilot Chat
Если у вас еще нет расширения GitHub Copilot, установленного в Visual Studio Code:
- Щелкните значок расширений в Visual Studio Code, найдите GitHub Copilot и нажмите кнопку "Установить".
- Расширение чата GitHub Copilot устанавливается автоматически вместе с GitHub Copilot.
Войдите в GitHub в Visual Studio Code
- Убедитесь, что у вас есть учетная запись GitHub и активная подписка GitHub Copilot:
- В Visual Studio Code выберите значок Account и команду Войти с помощью GitHub, чтобы использовать GitHub Copilot.
Начало работы с GitHub Copilot
Выполните действия, чтобы начать использование GitHub Copilot с расширением PostgreSQL Visual Studio Code.
- Щелкните правой кнопкой мыши базу данных PostgreSQL в обозреватель объектов и выберите Chat с этой базой данных. Это работает для любого подключения — локального PostgreSQL или Azure HorizonDB.
- Если появится запрос, нажмите Разрешить, чтобы предоставить GitHub Copilot доступ к контексту подключения к базе данных.
- Когда откроется интерфейс чата Copilot, начните задавать вопросы с помощью
@pgsqlпрефикса, чтобы указать, что вы хотите взаимодействовать с базой данных PostgreSQL.
Попробуйте выполнить запрос, например:
@pgsql tell me about the tables in the HR schema
Copilot отвечает с подробным описанием таблиц схемы.
Подключение к правой конечной точке HorizonDB
Так как кластер Azure HorizonDB предоставляет две конечные точки, подключение, в котором вы начинаете чат, определяет, через какую конечную точку будет выполняться SQL-запрос, сгенерированный Copilot:
- Конечная точка чтения/записи - используйте это подключение, если вы хотите, чтобы Copilot составлял, изменял или выполнял операторы, которые изменяют данные или схему либо должны считывать последнее зафиксированное состояние.
- Конечная точка для чтения — используйте это подключение, если хотите, чтобы Copilot составлял и выполнял запросы только для чтения, которым подходит горизонтальное масштабирование с балансировкой нагрузки между репликами высокой доступности (например, для исследовательской аналитики или запросов для отчетности).
Если Copilot генерирует инструкцию записи, когда вы подключены к эндпоинту только для чтения, переключите активное подключение на эндпоинт чтения/записи, прежде чем подтверждать выполнение.
Использование возможностей чтения и записи
Интеграция GitHub Copilot для расширения PostgreSQL в Visual Studio Code поддерживает операции чтения и записи. Вы можете запрашивать данные, изменять схемы и обновлять записи непосредственно из редактора с помощью предложений СИ, которые учитывают контекст динамического подключения.
Note
Интеграция Copilot Chat GitHub для PostgreSQL может вносить изменения в базу данных. Используйте эту функцию с осторожностью, особенно в тестовой и продакшн средах. Всегда просматривайте созданный код SQL перед его выполнением и сначала рассмотрите возможность тестирования в безопасной среде. В Azure HorizonDB также убедитесь, что операции записи предназначены для конечной точки read/write — конечная точка чтения доступна только для чтения.
Попробуйте более расширенный запрос:
@pgsql convert the hr.employees table to use a JSONB column for the address field
Copilot может отвечать на предложения SQL и запрашивать разрешение на внесение изменений.
Для утверждения выполнения:
@pgsql Yes, please make the JSONB column for me
Затем Copilot запрашивает подтверждение:
@pgsql Yes, I confirm
Использование параметров контекстного меню
Вы можете выбрать код SQL в редакторе и щелкнуть правой кнопкой мыши, чтобы получить доступ к параметрам контекстного меню GitHub Copilot, например "Объяснить запрос", " Перезаписать запрос" или "Анализ производительности запросов". В HorizonDB пояснения и предложения по переписыванию также учитывают специфичные для HorizonDB индексы (например, pg_diskann векторные индексы), если они имеются.
Другие идеи и подсказки рецептов
В следующих разделах показаны основные подсказки, которые можно попробовать или изменить для сопоставления контекста базы данных и среды разработки.
Оптимизация запросов
Используйте эти запросы, чтобы помочь Copilot в решении конкретных задач оптимизации запросов.
I'm working on optimizing my database for high-concurrency workloads. The table is called transactions with millions of records, and I'm experiencing deadlocks under a heavy load. Help me optimize my table schema and queries.
I need help writing a query. The data is stored in the orders table, which uses the columns customer_id, order_date, and total_price. I also need to include a rolling 3-month average of customer spending using a window function.
I'm getting this error: 'ERROR: column "orders.total_price" must appear in the GROUP BY clause or be used in an aggregate function.'
Оптимизация производительности
Используйте эти запросы, чтобы помочь Copilot в решении конкретных проблем оптимизации производительности.
Provide the Explain Plan for my most recent query, and please explain each step.
Can you run some performance metrics on my database and tell me how it performs?
My orders table has 10 million records, and queries on customer_id and order_date are slow. How can I optimize indexing, partitioning, and schema design for performance?
Разработка приложений
Используйте эти запросы, чтобы помочь Copilot в решении проблем разработки приложений.
Generate a FastAPI endpoint to fetch orders from the ecom.orders table with pagination.
Generate an ETL pipeline script to clean and normalize the customer table data.
Generate a FastAPI project with my database using SQLAlchemy.
Рабочие нагрузки ИИ в Azure HorizonDB
При подключении к кластеру HorizonDB вы можете использовать Copilot, чтобы работать с возможностями ИИ HorizonDB — pgvector, pg_diskann (с расширенной фильтрацией) и ИИ-функциями azure_ai на базе AI Model Management (ограниченная предварительная версия) или ваших собственных развертываний Microsoft Foundry.
@pgsql Create a products table with a description column and a vector(1536) embedding column. Then write a query that populates the embedding column for any rows where it's NULL using azure_openai.create_embeddings with the default-embedding managed model.
@pgsql Build a pg_diskann index on the products.embedding column using vector_cosine_ops, then write a similarity search that finds the top 10 products with average_rating > 4.5 and price between 100 and 200 - using DiskANN Advanced Filtering so the WHERE clause is evaluated during the vector search.
@pgsql Use azure_ai.extract() to pull product and sentiment out of the review_text column of the product_reviews table, and azure_ai.is_true() to flag reviews that mention shipping issues.
@pgsql I have a Microsoft Foundry deployment of gpt-5 in my own subscription. Show me how to register it with model_registry.model_add as 'gpt-5-byom' and then call azure_ai.generate() with that alias to rewrite the comment_text column of user_comments to be more polite.
Горизонтальное масштабирование чтения
При подключении к reader endpoint кластера HorizonDB можно попросить Copilot подготовить черновики рабочих нагрузок только для чтения, использующих реплики высокой доступности с балансировкой нагрузки:
@pgsql Generate a reporting query against the orders and customers tables that aggregates monthly revenue by region and customer segment. Make sure the query is read-only so it's safe to run against the HorizonDB reader endpoint.
Очистка
Чтобы обеспечить бесперебойную работу, очистите все временные ресурсы или конфигурации, созданные во время этого вводного руководства. Рассмотрим пример.
- Отключитесь от базы данных PostgreSQL в Visual Studio Code.
- Удалите все тестовые базы данных, таблицы или индексы (включая все
pg_diskannиндексы), созданные во время сеанса. - Закройте все открытые подключения, чтобы избежать ненужного использования ресурсов.
Отзывы и поддержка
Для ошибок, запросов функций и проблем используйте встроенное средство обратной связи в Visual Studio Code. Вы можете выполнить эту обратную связь с помощью меню справки Visual Studio Code или палитры команд PGSQL.
-
Меню "Справка"
- Перейти к Помощь > Сообщить о проблеме
-
Палитра команд
- Откройте палитру команд с помощью
Ctrl + Shift + Pи выполните:PGSQL: Report Issue
- Откройте палитру команд с помощью