Boas práticas para o GitHub Copilot no SQL Server Management Studio

O Copiloto do GitHub no SQL Server Management Studio (SSMS) acelera sua produtividade dentro do fluxo de trabalho no SSMS, incluindo escrever e editar Transact-SQL (T-SQL). Para tirar o máximo proveito do GitHub Copilot no SSMS, você deve aprender a colaborar com ele de forma eficaz. Como qualquer parceiro, o Copiloto GitHub no SSMS tem melhor desempenho quando recebe uma direção clara e contexto apropriado. O uso ideal da janela de bate-papo também melhora a qualidade da sua experiência com o GitHub Copilot no SSMS.

Janela de chat

Os ícones e capacidades da janela de chat estão documentados no modo Pergunta e no modo Agente (pré-visualização), mas outras considerações são específicas dos prompts.

Primeiramente, não trate a janela de bate-papo como uma janela de resultados. Quando você faz perguntas ao GitHub Copilot sobre seu esquema ou dados, ele pode executar diretamente uma consulta para retornar informações para você na janela de chat. O Copilot do GitHub no SSMS não determina o número de linhas retornadas por uma consulta antes de ser executada e, se a consulta retornar 1.000 linhas, ele tentará exibir essas informações no bate-papo. Grandes conjuntos de resultados não são facilmente legíveis e não podem ser manipulados na janela de chat.

Pedir ao Copiloto do GitHub no SSMS para escrever a consulta para retornar as informações é geralmente preferível e cria uma melhor interação e experiência com o Copiloto do GitHub.

Permissions

O GitHub Copilot no SQL Server Management Studio (SSMS) executa consultas e comandos no contexto do seu login. Aplique o princípio do privilégio mínimo: conceda aos utilizadores apenas as permissões SELECT, EXECUTE e outras de que necessitem nos objetos específicos a que devem aceder. A partir do SSMS 22.7, os administradores podem configurar o contexto de execução que garante que as consultas geradas pelo Copilot sejam executadas sob uma conta dedicada e menos privilegiada, em vez das próprias permissões do utilizador. Esta configuração utiliza um utilizador de base de dados ou login SQL, especificado no CONSTITUTION.mdarquivo . Para mais informações, consulte Contexto de execução para GitHub Copilot em SQL Server Management Studio.

Contexto

Um modelo de IA não conhece o teu esquema, as tuas convenções de nomenclatura, as tuas regras de negócio ou para que servidor estás a apontar, a menos que tu lhe digas. Quanto mais contexto preciso fornecer, melhor será a resposta. Para o GitHub Copilot no SSMS, o contexto vem de várias fontes: a ligação ativa à base de dados (servidor, base de dados), editores de consultas abertos, os resultados na grelha, instruções da base de dados, a constituição da base de dados e instruções personalizadas que configura. Um prompt como "otimizar esta consulta" melhora drasticamente quando o modelo conhece as estruturas das tabelas, a cobertura do índice e os padrões de carga de trabalho envolvidos. A intenção clara diz ao modelo o que queres alcançar, e o contexto preciso indica-lhe onde estás a trabalhar e com o que estás a trabalhar. Em conjunto, eliminam suposições e reduzem informação incorreta, o que é especialmente importante quando a saída é T-SQL, que pode ser executada contra dados de produção. Para mais informações, consulte Adicionar contexto para GitHub Copilot em SQL Server Management Studio.

Consistency

Uma frustração comum entre os utilizadores de copilotos é a inconsistência nas respostas. As respostas de IA podem ser inconsistentes porque são geradas probabilisticamente em vez de deterministicamente. Especificamente, quando lhe fazem a mesma pergunta, o modelo pode escolher um conjunto diferente, mas ainda plausível, de palavras ou estrutura de frase com base em variações subtis de contexto, configuração ou aleatoriedade interna. Além disso, os modelos de IA pesam muitas interpretações potenciais de um prompt, de modo que pequenas mudanças no fraseado ou no tempo podem levar a resultados diferentes. Essa variabilidade é parte do que torna a IA tão flexível e poderosa, mas também pode levar a resultados imprevisíveis se os prompts não forem construídos de forma ideal.

Escrita rápida

Inerente ao trabalho com IA está escrever prompts para enviar e, assim como o ajuste de desempenho, é uma arte e uma ciência. Você não precisa ser um engenheiro de prompts para escrever bons prompts. Mas você precisa estar ciente das diretrizes gerais ao se envolver com IA.

Por exemplo, se você perguntar Find the hottest tables in the database, o GitHub Copilot no SSMS pode não entender que, no contexto desse prompt, as tabelas mais quentes são as tabelas mais movimentadas ou mais ativas. Em vez disso, tente List the top 10 tables in the database that have the most reads.

As recomendações gerais para escrita rápida incluem:

Recommendation Detalhes
Utilize linguagem natural Você não precisa usar vocabulário especializado, mas tente evitar frases informais, gírias e jargões.
Seja claro e específico Forneça detalhes suficientes para que o GitHub Copilot seja claro sobre o que você está pedindo.
Fornecer contexto O Copilot do GitHub no SSMS tem conexão e contexto de banco de dados com base na conexão do editor de consultas, mas você pode fornecer contexto extra, como um período de tempo ou objetos de banco de dados específicos.
Exemplos de utilização Aproveite as respostas anteriores, como Modify the last query to order the results by CustomerID.
Definir o formato de saída O GitHub Copilot pode fornecer informações em formato de texto, tabela ou lista. Ele escolhe por você, mas você pode pedir especificamente para que as informações sejam devolvidas no formato desejado.

Exemplos de prompts:

Recommendation Evite Experimentar
Utilize linguagem natural 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
Seja claro e específico 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
Fornecer contexto List western schools with no language reqs List schools in the US-West geo that have a lang_req value of 0
Exemplos de utilização 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
Definir o formato de saída 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