Procedure consigliate per GitHub Copilot in SQL Server Management Studio

GitHub Copilot in SQL Server Management Studio (SSMS) accelera la produttività all'interno del flusso di lavoro in SSMS, inclusa la scrittura e la modifica di Transact-SQL (T-SQL). Per sfruttare al meglio GitHub Copilot in SSMS, è necessario imparare a collaborare in modo efficace. Come qualsiasi partner, GitHub Copilot in SSMS offre prestazioni ottimali quando vengono fornite indicazioni chiare e contesto appropriato. L'uso ottimale della finestra di chat migliora anche la qualità dell'esperienza con GitHub Copilot in SSMS.

Finestra chat

Le icone e le funzionalità della finestra di chat sono documentate in modalità Chiedi e in modalità Agente (anteprima), ma altre considerazioni sono specifiche per le richieste.

In primo luogo, non considerare la finestra di chat come finestra dei risultati. Quando si chiedono domande a GitHub Copilot sullo schema o sui dati, è possibile eseguire direttamente una query per restituire informazioni nella finestra di chat. GitHub Copilot in SSMS non determina il numero di righe restituite da una query prima dell'esecuzione e, se la query restituisce 1.000 righe, tenta di visualizzare tali informazioni nella chat. I set di risultati di grandi dimensioni non sono facilmente leggibili e non possono essere modificati, all'interno della finestra di chat.

Chiedere a GitHub Copilot in SSMS di scrivere la query per restituire le informazioni è spesso preferibile e crea un'interazione e un'esperienza migliori con GitHub Copilot.

Permissions

GitHub Copilot in SQL Server Management Studio (SSMS) esegue query e comandi nel contesto delle credenziali di accesso. Applicare il principio dei privilegi minimi: concedere agli utenti solo le SELECTautorizzazioni , EXECUTEe altre necessarie per gli oggetti specifici a cui devono accedere. A partire da SSMS 22.7, gli amministratori possono configurare il contesto di esecuzione che garantisce che le query generate Copilot vengano eseguite con un account dedicato con privilegi minimi anziché le autorizzazioni dell'utente. Questa configurazione usa un utente del database o un accesso SQL, specificato nell'CONSTITUTION.md del database. Per altre informazioni, vedi Contesto di esecuzione per GitHub Copilot in SQL Server Management Studio.

Contesto

Un modello di intelligenza artificiale non conosce il tuo schema, le tue convenzioni di denominazione, le tue regole aziendali o a quale server ti stai collegando, a meno che tu non glielo dica. Il contesto più accurato fornito, migliore sarà la risposta. In GitHub Copilot per SSMS, il contesto proviene da più fonti: la connessione al database attiva (server, database), gli editor di query aperti, i risultati nella griglia, istruzioni del database, la costituzione del database e le istruzioni personalizzate che configuri. Una richiesta come "ottimizzare questa query" migliora notevolmente quando il modello conosce le strutture di tabella, la copertura degli indici e i modelli di carico di lavoro coinvolti. La finalità chiara indica al modello ciò che si vuole eseguire e il contesto accurato indica dove si lavora e con quali operazioni si sta lavorando. Insieme, eliminano le ipotesi e riducono informazioni errate, particolarmente importanti quando l'output è T-SQL che potrebbe essere eseguito sui dati di produzione. Per altre informazioni, vedere Aggiungi contesto per GitHub Copilot in SQL Server Management Studio.

Coerenza

Una frustrazione comune tra gli utenti di copiloti è un'incoerenza nelle risposte. Le risposte di intelligenza artificiale possono essere incoerenti perché vengono generate probabilisticamente anziché deterministiche. In particolare, quando viene posta la stessa domanda, il modello potrebbe scegliere un set diverso, ma comunque plausibile, set di parole o struttura di frasi in base a lievi variazioni nel contesto, nella configurazione o nella casualità interna. Inoltre, i modelli di intelligenza artificiale pesano molte potenziali interpretazioni di una richiesta, quindi piccole modifiche nella formulazione o nella tempistica possono portare a risultati diversi. Questa variabilità fa parte di ciò che rende l'IA così flessibile e potente, ma può anche portare a risultati imprevedibili se i prompt non sono costruiti in modo ottimale.

Richiesta di scrittura

Un aspetto intrinseco del lavoro con l'intelligenza artificiale è la scrittura di prompt da inviare: proprio come il tuning delle prestazioni, è un'arte e una scienza. Non è necessario essere un ingegnere dei prompt per scrivere buoni prompt. Tuttavia, è necessario essere consapevoli delle linee guida generali quando si interagiscono con l'IA.

Ad esempio, se si chiede Find the hottest tables in the database, GitHub Copilot in SSMS potrebbe non comprendere che nel contesto di questa richiesta, le tabelle più calde sono quelle più frequentate o più attive. Provare invece List the top 10 tables in the database that have the most reads.

Le raccomandazioni generali per la scrittura della richiesta includono:

Raccomandazione Dettagli
Usare il linguaggio naturale Non è necessario usare un vocabolario specializzato, ma cercate di evitare frasi informali, slang e gergo.
Essere chiari e specifici Fornire dettagli sufficienti in modo che GitHub Copilot sia chiaro su ciò che si sta chiedendo.
Specificare il contesto GitHub Copilot in SSMS ha una connessione e un contesto di database basato sulla connessione all'editor di query, ma è possibile fornire contesto aggiuntivo, ad esempio un intervallo di tempo o oggetti di database specifici.
Utilizzare esempi Costruire sulle risposte precedenti, ad esempio Modify the last query to order the results by CustomerID.
Definire il formato di output GitHub Copilot può fornire informazioni in formato testo, tabella o elenco. Sceglie automaticamente, ma è possibile richiedere in modo specifico le informazioni da restituire in un formato desiderato.

Richieste di esempio:

Raccomandazione Evitare Prova
Usare il linguaggio naturale Yo cook me up something cool for grabbing sales data Write a SQL query that selects the top 10 most recent orders from the Sales.Orders table
Essere chiari e specifici Okay, so I've got this thing where I need to maybe get some kind of report or output or whatever for yesterday's stuff but like only for users that are new but not too new, if that makes sense Write a query to return users who registered yesterday and have not yet made a purchase
Specificare il contesto List western schools with no language reqs List schools in the US-West geo that have a lang_req value of 0
Utilizzare esempi Write a query to get recent customer info Write a query to get customer ID, name, and total number of orders for the last 10 business days ordered by total desc
Definire il formato di output Give me hospital locations and size with the busiest emergency rooms List the hospitals with the busiest emergency rooms in table format and include city, state, and size