Meilleures pratiques pour GitHub Copilot dans SQL Server Management Studio

GitHub Copilot dans SQL Server Management Studio (SSMS) accélère votre productivité au sein de votre workflow dans SSMS, y compris l’écriture et la modification de Transact-SQL (T-SQL). Pour tirer le meilleur parti de GitHub Copilot dans SSMS, vous devez apprendre à collaborer efficacement avec elle. Comme n’importe quel partenaire, GitHub Copilot dans SSMS s’effectue le mieux lorsqu’il est donné une direction claire et un contexte approprié. L’utilisation optimale de la fenêtre de conversation améliore également la qualité de votre expérience avec GitHub Copilot dans SSMS.

Fenêtre de conversation

Les icônes et les fonctionnalités de la fenêtre de conversation sont décrites dans le mode Questions et le mode Agent (version préliminaire), mais d’autres considérations sont propres aux requêtes.

Principalement, ne traitez pas la fenêtre de conversation comme une fenêtre de résultats. Lorsque vous posez des questions gitHub Copilot sur votre schéma ou vos données, il peut exécuter directement une requête pour retourner des informations à vous dans la fenêtre de conversation. GitHub Copilot dans SSMS ne détermine pas le nombre de lignes retournées par une requête avant son exécution, et si la requête retourne 1 000 lignes, elle tente d’afficher ces informations dans la conversation. Les jeux de résultats volumineux ne sont pas facilement lisibles et ne peuvent pas être manipulés, dans la fenêtre de conversation.

Demander à GitHub Copilot dans SSMS d’écrire la requête pour retourner les informations est souvent préférée et crée une meilleure interaction et une meilleure expérience avec GitHub Copilot.

Permissions

GitHub Copilot dans SQL Server Management Studio (SSMS) exécute des requêtes et des commandes dans le contexte de votre connexion. Appliquez le principe du privilège minimum : accordez uniquement aux utilisateurs les SELECTEXECUTEautorisations nécessaires sur les objets spécifiques auxquels ils doivent accéder. À compter de SSMS 22.7, les administrateurs peuvent configurer le contexte d'exécution qui garantit que les requêtes générées par Copilot s'exécutent sous un compte dédié et à privilèges minimum plutôt que les propres autorisations de l'utilisateur. Cette configuration utilise un compte de base de données ou un identifiant SQL, spécifié dans le CONSTITUTION.md de la base de données. Pour plus d’informations, consultez le contexte d’exécution de GitHub Copilot dans SQL Server Management Studio.

Contexte

Un modèle IA ne connaît pas votre schéma, vos conventions d’affectation de noms, vos règles d’entreprise ou le serveur auquel vous pointez, sauf si vous le dites. Plus le contexte que vous fournissez est précis, meilleure sera la réponse. Pour GitHub Copilot dans SSMS, le contexte provient de plusieurs sources : la connexion de base de données active (serveur, base de données), les éditeurs de requêtes ouverts, les résultats dans la grille, les instructions database, la constitution de la base de données et les instructions customes vous configurez. Une invite telle que « optimiser cette requête » s’améliore considérablement lorsque le modèle connaît les structures de table, la couverture d’index et les modèles de charge de travail impliqués. L’intention claire indique au modèle ce que vous souhaitez accomplir, et le contexte précis lui indique vous travaillez et ce que vous utilisez. Ensemble, ils éliminent les estimations et réduisent les informations incorrectes, ce qui est particulièrement important lorsque la sortie est T-SQL qui peut s’exécuter sur les données de production. Pour plus d’informations, consultez Ajouter un contexte pour GitHub Copilot dans SQL Server Management Studio.

Cohérence

Une frustration courante chez les utilisateurs de copilotes est une incohérence dans les réponses. Les réponses ia peuvent être incohérentes, car elles sont générées de manière probabiliste plutôt que déterministe. Plus précisément, lorsqu’il est posé la même question, le modèle peut choisir un ensemble de mots ou de phrases différent, mais toujours plausible, basé sur des variations subtiles dans le contexte, la configuration ou la randomité interne. En outre, les modèles d'IA pèsent de nombreuses interprétations potentielles d'une commande, ainsi de petites modifications de formulation ou du moment peuvent entraîner des résultats différents. Cette variabilité fait partie de ce qui rend l’IA si flexible et puissante, mais elle peut également entraîner des résultats imprévisibles si les invites ne sont pas construites de manière optimale.

Écriture rapide

Inhérent au travail avec l'IA, écrire des instructions est tout comme l'optimisation des performances, c'est à la fois un art et une science. Vous n’avez pas besoin d’être un expert des prompts pour rédiger de bonnes requêtes. Toutefois, vous devez prendre connaissance des instructions générales lors de l’utilisation de l’IA.

Par exemple, si vous demandez Find the hottest tables in the database, GitHub Copilot dans SSMS peut ne pas comprendre que, dans le contexte de cette invite, les tables les plus sollicitées sont celles qui sont les plus occupées ou les plus actives. Au lieu de cela, essayez List the top 10 tables in the database that have the most reads.

Les recommandations générales pour la rédaction d'invites incluent :

Recommandation Détails
Utiliser le langage naturel Vous n’avez pas besoin d’utiliser un vocabulaire spécialisé, mais essayez d’éviter les expressions informelles, l'argot et le jargon.
Être clair et spécifique Fournissez suffisamment de détails pour que GitHub Copilot soit clair sur ce que vous demandez.
Fournir un contexte GitHub Copilot dans SSMS a un contexte de connexion et de base de données basé sur la connexion de l’éditeur de requête, mais vous pouvez fournir un contexte supplémentaire tel qu’un délai ou des objets de base de données spécifiques.
Utiliser des exemples Construisez sur des réponses précédentes, telles que Modify the last query to order the results by CustomerID.
Définir le format de sortie GitHub Copilot peut fournir des informations au format texte, tableau ou liste. Il choisit pour vous, mais vous pouvez spécifiquement demander des informations à retourner dans un format souhaité.

Exemples d’invites :

Recommandation Éviter Essayer
Utiliser le langage naturel 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
Être clair et spécifique 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
Fournir un contexte List western schools with no language reqs List schools in the US-West geo that have a lang_req value of 0
Utiliser des exemples 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
Définir le format de sortie 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