Skip to content

IA no SQL Server: Conheça o Azure SQL Copilot

Este é um post com uma dica rápida para quem gosta de bancos de dados, especialmente o SQL Server no Azure: O Fabrício Lima está publicando uma série de posts em seu blog sobre os testes realizados com o Public Preview do Copilot! Em um dos posts, ele responde uma pergunta que todo mundo quer saber: O Copilot Otimiza sua Query ? Ele fez alguns testes diretamente para responder!

Vale muito a pena conferir e, inclusive, ele está reportando feedbacks diretamente pro time lá da Microsoft responsável por essa funcionalidade! Ou seja, muitas melhorias vão sair de testes que o Fabrício está fazendo, contribuindo diretamente pro Azure SQL Copilot!

Aqui está a lista do posts da série: Copilot – Fabricio Lima | Consultoria e Treinamento SQL Server

Sobre o Copilot no Azure

Junto com o Fabrício, eu também fiz alguns testes e feedback sobre essa nova funcionalidade. Eu já esperava que mais cedo ou mais tarde esse tipo de coisa fosse aparecer. No final do post, deixei algumas previsões adicionais que fiz! Especificamente, eu testei o Inline Copilot, que permite gerar queries na estrutura do seu banco usando linguagem natural.

Essa feature só está disponível lá no portal do Azure. Você precisa ir lá no SQL Query Editor do banco desejado (depois de habilitar o Copilot na sua assinatura), e procurar a opção Launch inline copilot

Como encontrar o “Launch Inline Copilot”

Se você não achar, tente mudar o idioma da interface do seu Azure para o inglês, e tente novamente. Caso não apareça, vá ao link acima e certifique-se que o Copilot está habilitado no seu tenant do Azure (pode ser que precise falar com o seu Adm).

O Inline Copilot permite que você gere queries como se estivesse falando naturalmente com seu banco. Aqui vai um exemplo, onde pedi pra ele “Usuários com licença vs usuários sem licença” (aceita somente inglês ainda):

Repare que a query é gerada com alguns comentários. Neste caso, ele acertou muito bem a tabela e colunas envolvidas. Já identificamos algumas melhorias nessa feature e passamos o feedback para o time da Microsoft.

Hoje o objetivo aqui é mostrar rapidamente essas funcionalidades! Fica ligado no blog do Fabrício Lima que ele está fazendo testes muito mais detalhados e vai trazer mais informações sobre essa feature.

Segurança dos meus dados e IA

Um assunto que com certeza vai nortear muitas empresas é a segurança: Devo realmente confiar os meus dados direto da fonte a uma IA? Sim, é bem polêmico isso, e eu acho que o que vale aqui é avaliar o caso. Algumas opiniões e dicas que tenho sobre isso:

  • Se for um banco crítico, onde você não quer correr nenhum risco, esqueça IA hospedada em algum lugar, ou use um modelo open source, invista em hardware, uma equipe de Devs e Engenheiro de Machine Learning e isole a máquina da IA em um servidor sem sair pra Internet. Se isso vai valer a pena para implementar a IA no seu banco, ai é outra coisa pra você avaliar…
  • Jamais execute NADA, absolutamente nada, direto da IA no seu banco, sem ter alguma camada de revisão ou controle de permissão. Isso abre margem. A IA pode errar, e gerar um comando de DROP, DELETE, etc. lá dentro. Então, é melhor não correr o risco. O Inline Copilot não executa a query diretamente, ela apenas te retorna a sugestão. A responsabilidade de apertar o botão RUN ainda é sua. O próprio INLINE COPILOT recomenda usar um banco READONLY.
  • Eu não jogaria dado sensíveis, como senhas, em IAs (a não ser se fosse o ambiente controlado acima)
  • Eu habilitaria qualquer recurso de IA que me ajudasse a escrever queries mais rápidas e/ou analisar a estrutura do banco
  • Eu habilitaria o Azure SQL Copilot tranquilamente em meus bancos, mas sempre com alguma camada de revisão (humana ou automática) antes de rodar o comando.
  • Eu não habilitaria um serviço de IA que tenho pouca referência sobre o funcionamento ou que fosse de uma empresa nova, nem mesmo se fosse open source.
  • Eu deixaria uma IA ler os dados do meu banco que não fosse sensíveis (Uma tabela com apenas códigos ou descrição genéricas e públicas de algo)

Há muito mais o que considerar do que apenas a opinião de um blog da Internet. Aqui é mais para trazer à tona um pouco do que você tem que colocar na mesa antes de habilitar IA, ou qualquer outro serviço externo, que acesse diretamente seu ambiente, inclusive seu banco de dados.

Previsões

Aproveitando que estamos falando de Inteligência Artificial e banco de dados SQL, eu que já tenho um bom tempo de experiência com SQL Server, arrisco tentar algumas coisas que não vamos demorar muito pra ver (e algumas já são realidade). Depois eu vou voltar aqui no post pra ver o que acertei e errei:

  • Query Optimizer mais autônomo: A criação de planos de execução já é algo absurdo e aquilo ali já tem muita Matemática envolvida. Com os avanços dos últimos anos, creio que muito em breve poderemos ver uma evolução muito mais poderosa do componente responsável por escolher a melhor maneira de acesso ao banco. Imagina o cenário onde um padrão de dados muda e o optimizer consegue detectar isso e fazer o ajuste no plano APENAS PARA OS PARÂMETROS que causam isso? Eu acho que isso é algo que já é possível hoje, mas não deve ser prático e simples de embutir em uma Engine comercial e gigante. Mas, é só uma questão de tempo!
  • Intellisense +Inteligente e realtime: Uma feature sensacional é o IntelliSense do Management Studio. Eu nunca parei para testar, mas existem diversas variações e com certeza já tem algum plugin ai pro SSMS chama a API da OpenAI e gera resultados e sugestões interessantes. Agora, imagina isso sem depender de uma API? Imagina nem depender da Internet? Pois é, acho que isso é algo que vamos ver. Ainda mais com o Copilot+ PC vindo, onde teremos uma NPU (Neural Processing Unit) direto no seu PC, IAs pequenas, como o Phi3, o Gemma e o Lama3, vão rodar tranquilamente na sua máquina.. E atualmente, eles já possuem uma boa capacidade de resposta. Então, ao invés de pedir pra uma grande como o ChatGPT te ajudar, algo na sua máquina, vai dar conta do recado. E com hardware dedicado pra essa tarefa, vai ser muito rápido. Então, se o SSMS detectar que está em um PC com essas características, pode facilmente usar os recursos locais para ajudar a te entregar muito precisamente o que você quer!
  • Quorum Inteligente: Acho que vai sobrar até pro quórum de uma solução de cluster. Imagina uma IA que participa na votação de um quórum de cluster. Usando o histórico de quedas, informações do log, etc. Com isso, ela periodicamente manteria um quórum dinâmico e muito mais preciso de qual nós, ou conjunto de nós, poderiam manter o serviço no ar em um cenário de falha
  • Recomendações de features: Um outro recurso que pode se beneficiar muito da IA seria a recomendação automática de features. Sabe aquela história: Se o recurso é bom, porque ele já não vem habilitado por padrão? Talvez, as próximas versões de banco permitam habilitar features automáticas em resposta a padrões de um ambiente. Isso , em tese, já é possível fazer hoje com um pouco de script e coleta de dados. Mas isso embutido na engine seria algo muito mais robusto!
  • Suporte a pesquisa semântica: Essa aqui, o Ricardo Portilho mostrou que saiu na última versão do Oracle, e achei sensacional (mas como ele mesmo diz: Vamos ver se na prática é isso mesmo). Mas, de qualquer forma, eu achei a ideia muito promissora e creio que será normal, direto na engine, ter suporte a pesquisa semântica, e um operador pra isso. Assim como temos um LIKE talvez, aparecer um SELECT * FROM Tabela WHERE Coluna SEMANTIC ‘Uma frase qualquer’

Eu poderia ficar viajando aqui em muitos mais previsões… Mas vou parar aqui… O fato é que, eu vejo que estamos muito mais perto de chegar nessas coisas do que nunca! Pra mim, vai ser só uma questão de tempo, muitas delas já estão aí, e assim, como um dia 4MB de RAM era assustadoramente muita coisa, essas habilidades serão o que 4MB são hoje para nós: uma pequena parcela comum de algo muito maior!

E você tem alguma boa previsão ai?

Leave a Reply

Your email address will not be published. Required fields are marked *