Práticas recomendadas para o GitHub Copilot no SQL Server Management Studio

O GitHub Copilot no SSMS (SQL Server Management Studio) acelera sua produtividade dentro do fluxo de trabalho no SSMS, incluindo gravação e edição de Transact-SQL (T-SQL). Para aproveitar ao máximo o GitHub Copilot no SSMS, você deve aprender a colaborar com ele com eficiência. Como qualquer parceiro, o GitHub Copilot no SSMS obtém o melhor desempenho quando recebe direção clara e contexto apropriado. O uso ideal da janela de chat também aprimora a qualidade da sua experiência com o GitHub Copilot no SSMS.

Janela de chat

Os ícones e as funcionalidades da janela de chat são documentados em Ask mode e Agent mode (preview), mas outras considerações são específicas dos prompts.

Principalmente, não trate a janela de chat como uma janela de resultados. Quando você faz perguntas do GitHub Copilot sobre seu esquema ou dados, ele pode executar diretamente uma consulta para retornar informações para você na janela de chat. O GitHub Copilot 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, ela tentará exibir essas informações no chat. Conjuntos de resultados grandes não são facilmente legíveis e não podem ser manipulados na janela de chat.

Pedir ao GitHub Copilot 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 GitHub Copilot.

Permissions

GitHub Copilot no SSMS (SQL Server Management Studio) executa consultas e comandos no contexto do logon. Aplique o princípio do privilégio mínimo: conceda aos usuários apenas as permissões SELECT, EXECUTE e outras permissões de que precisem nos objetos específicos aos quais devem ter acesso. A partir do SSMS 22.7, os administradores podem configurar o contexto de execução que garante que as consultas geradas por Copilot sejam executadas em uma conta dedicada, com menos privilégios, em vez de permissões do próprio usuário. Essa configuração usa um usuário de banco de dados ou login SQL, especificado em CONSTITUTION.mdbanco de dados. Para obter mais informações, consulte Execution context for GitHub Copilot in SQL Server Management Studio.

Contexto

Um modelo de IA não conhece seu esquema, suas convenções de nomenclatura, suas regras de negócios ou em qual servidor você está apontando, a menos que você diga a ele. Quanto mais preciso o contexto for fornecido, melhor será a resposta. No GitHub Copilot para SSMS, o contexto vem de várias fontes: a conexão ativa com o banco de dados (servidor, banco de dados), os editores de consulta abertos, os resultados na grade, as instruções do banco de dados, a constituição do banco de dados e as instruções personalizadas que você configura. Um prompt como "otimizar essa consulta" melhora drasticamente quando o modelo conhece as estruturas de tabela, a cobertura de índice e os padrões de carga de trabalho envolvidos. A intenção clara informa ao modelo o que você deseja realizar e o contexto preciso informa onde você está trabalhando e com o que está trabalhando. Juntos, eles eliminam suposições e reduzem a ocorrência de informações incorretas, o que é especialmente importante quando o resultado gerado é T-SQL, que pode ser executado nos dados de produção. Para obter mais informações, consulte Adicionar contexto para o GitHub Copilot no SQL Server Management Studio.

Consistência

Uma frustração comum entre os usuários 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 feita a mesma pergunta, o modelo pode escolher um conjunto diferente, mas ainda plausível, de palavras ou estrutura de frases com base em variações sutis no 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 alterações na frase ou no tempo podem levar a resultados diferentes. Essa variabilidade faz 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.

Criação de prompt

Trabalhar com IA envolve a escrita de prompts para enviar, e assim como o ajuste de desempenho, é tanto uma arte quanto uma ciência. Você não precisa ser um engenheiro de prompt 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 talvez não entenda 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 a escrita de prompt incluem:

Recomendação Detalhes
Usar 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á perguntando.
Fornecer contexto O GitHub Copilot 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.
Usar exemplos Base-se em 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 para você, mas você pode pedir especificamente que as informações sejam retornadas em um formato desejado.

Exemplos de prompts

Recomendação Evite Experimentar
Usar 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
Usar exemplos 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