Avvio rapido: configurare GitHub Copilot per l'estensione PostgreSQL in Visual Studio Code (Anteprima)

L'estensione PostgreSQL per Visual Studio Code include l'integrazione GitHub Copilot, migliorando i flussi di lavoro del database con lo sviluppo assistito dall'intelligenza artificiale. Una volta connesso a un database PostgreSQL, Copilot accede alle informazioni contestuali dalla connessione attiva. Questo accesso consente al partecipante @pgsql Copilot Chat di generare query SQL accurate e con riconoscimento dello schema e informazioni dettagliate, semplificando lo sviluppo e riducendo al minimo il cambio di contesto all'interno di Visual Studio Code.

Il @pgsql partecipante interagisce con qualsiasi database a cui l'estensione può connettersi, tra cui:

  • cluster di Azure HorizonDB.

Quando si è connessi a un cluster HorizonDB, Copilot è a conoscenza delle estensioni specifiche di HorizonDB installate nel database ,ad esempio pgvector, pg_diskann, azure_ai e age) e possono generare prompt e SQL che ne sfruttano i vantaggi.

Prerequisiti

Prima di iniziare, verificare che siano stati scaricati e installati gli strumenti e le risorse appropriati.

Installare le estensioni GitHub Copilot e GitHub Copilot Chat

Se non è già installata l'estensione GitHub Copilot in Visual Studio Code:

  1. Selezionare l'icona Estensioni in Visual Studio Code, cercare GitHub Copilot e selezionare Installa.
  2. L'estensione GitHub Copilot Chat viene installata automaticamente insieme a GitHub Copilot.

Accedere a GitHub in Visual Studio Code

  1. Assicurarsi di disporre di un account GitHub e di una sottoscrizione GitHub Copilot attiva:
  2. In Visual Studio Code selezionare l'icona Account e scegliere Accedere con GitHub per usare GitHub Copilot.

Introduzione a GitHub Copilot

Seguire la procedura per iniziare a usare GitHub Copilot con l'estensione PostgreSQL Visual Studio Code.

  1. Fare clic con il pulsante destro del mouse su un database PostgreSQL nel Esplora oggetti e selezionare Chat con questo database. Questa operazione funziona per qualsiasi connessione, ovvero PostgreSQL locale o Azure HorizonDB.
  2. Se richiesto, selezionare Consenti per abilitare GitHub Copilot per accedere al contesto di connessione del database.
  3. Quando si apre l'interfaccia di chat di Copilot, iniziare a porre domande usando il @pgsql prefisso per specificare che si vuole interagire con il database PostgreSQL.

Provare una richiesta simile alla seguente:

@pgsql tell me about the tables in the HR schema

Copilot risponde con una descrizione dettagliata delle tabelle dello schema.

Connettersi all'endpoint HorizonDB corretto

Poiché un cluster Azure HorizonDB espone due endpoint, la connessione da cui inizi la chat determina su quale endpoint viene eseguito l'SQL generato da Copilot:

  • Endpoint di lettura/scrittura - Usare questa connessione quando si vuole che Copilot rediga, modifichi o esegua istruzioni che modificano i dati o lo schema, oppure che debbano leggere lo stato più recente di cui è stato eseguito il commit.
  • Endpoint lettore - Usare questa connessione quando si vuole che Copilot elabori ed esegua query di sola lettura che traggono vantaggio dallo scale-out con bilanciamento del carico tramite repliche a disponibilità elevata (ad esempio, prompt di analisi esplorativa o per la creazione di report).

Se Copilot genera un'istruzione di scrittura mentre si è connessi all'endpoint lettore, passare la connessione attiva all'endpoint di lettura/scrittura prima di approvare l'esecuzione.

Usare le funzionalità di lettura e scrittura

L'integrazione GitHub Copilot per l'estensione PostgreSQL in Visual Studio Code supporta operazioni di lettura e scrittura. È possibile eseguire query sui dati, modificare gli schemi e aggiornare i record direttamente dall'editor con suggerimenti basati su intelligenza artificiale che prendono in considerazione il contesto di connessione dinamica.

Annotazioni

L'integrazione di GitHub Copilot Chat per PostgreSQL può apportare modifiche al database. Usare questa funzionalità con cautela, soprattutto negli ambienti di staging e produzione. Esaminare sempre il codice SQL generato prima di eseguirlo e provare prima di tutto a testarlo in un ambiente sicuro. In Azure HorizonDB, assicurarsi anche che le operazioni di scrittura siano indirizzate all'endpoint di lettura/scrittura - l'endpoint del lettore è di sola lettura.

Provare un prompt più avanzato:

@pgsql convert the hr.employees table to use a JSONB column for the address field

Copilot potrebbe rispondere con suggerimenti SQL e chiedere l'autorizzazione per apportare modifiche.

Per approvare l'esecuzione:

@pgsql Yes, please make the JSONB column for me

Copilot chiede quindi conferma:

@pgsql Yes, I confirm

Usa le opzioni del menu contestuale

È possibile selezionare Codice SQL nell'editor e fare clic con il pulsante destro del mouse per accedere alle opzioni di menu di scelta rapida di GitHub Copilot, ad esempio Spiega query, Riscrivi query o Analizza prestazioni query. In HorizonDB, le spiegazioni e i suggerimenti di riscrittura mettono in considerazione anche gli indici specifici di HorizonDB (ad esempio pg_diskann gli indici vettoriali) quando sono presenti.

Altre idee e contenitori di richiesta

Le sezioni seguenti illustrano i prompt dei concetti che è possibile provare o modificare in modo che corrispondano al contesto del database e all'ambiente di sviluppo.

Ottimizzazione della query

Usare queste istruzioni per guidare Copilot per risolvere specifici problemi di ottimizzazione delle query.

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.'

Ottimizzazione delle prestazioni

Usare queste istruzioni per guidare Copilot nella risoluzione di specifici problemi di ottimizzazione delle prestazioni.

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?

Sviluppo di app

Usare queste istruzioni per guidare Copilot nella risoluzione dei problemi di sviluppo delle app.

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.

Carichi di lavoro di intelligenza artificiale in Azure HorizonDB

Quando si è connessi a un cluster HorizonDB, è possibile usare Copilot per sfruttare le funzionalità AI di HorizonDB - pgvector, pg_diskann (con Filtro avanzato) e le Funzioni AI azure_ai supportate da AI Model Management (anteprima limitata) o dalle tue distribuzioni di 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.

Read scale-out (Scalabilità in lettura)

Quando si è connessi all'endpoint reader di un cluster HorizonDB, è possibile chiedere a Copilot di generare carichi di lavoro di sola lettura che sfruttano le repliche HA con bilanciamento del carico:

@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.

Pulizia

Per garantire un'esperienza senza intoppi, elimina tutte le risorse o le configurazioni temporanee create durante questa guida introduttiva. Per esempio:

  • Disconnettersi dal database PostgreSQL in Visual Studio Code.
  • Rimuovere tutti i database di test, le tabelle o gli indici (inclusi pg_diskann gli indici) creati durante la sessione.
  • Chiudere tutte le connessioni aperte per evitare l'utilizzo delle risorse non necessario.

Feedback e supporto

Per bug, richieste di funzionalità e problemi, usare lo strumento di feedback predefinito in Visual Studio Code. È possibile completare questo feedback tramite il menu Guida di Visual Studio Code o il riquadro comandi PGSQL.

  • Menu Aiuto
    • Vai a Aiuto > Segnala un problema
  • Palette dei comandi
    • Aprire il riquadro comandi con Ctrl + Shift + P ed eseguire: PGSQL: Report Issue