Finalmente a Microsoft anunciou o SQL Server 2025, e, como esperado, com features relacionadas a IA, a mais nova tecnologia que a humanidade está experimentando! Nesse post eu quero comentar as features de IA que foram anunciadas e já te preparar como elas podem ser úteis, já que aqui estou em duas praias: SQL Server e IA!
Eu digo “como esperado”, pois, conforme observamos os últimos movimentos, não é nenhuma novidade que todo produto de tecnologia está embutido algo de IA… E um banco de dados não fica de fora, pois, afinal, você tem a oportunidade de trabalhar IA diretamente onde os dados das aplicações ficam!
O link do anúncio é esse (o Dirceu Resende mandou logo cedo hoje): Announcing SQL Server 2025 | LinkedIn
E as features de IA anunciadas foram:
SQL Server 2025 will allow developers to execute vector searches and build RAG patterns co-located with their data inside the database engine. This provides a powerful concept to bring AI to your data.
SQL Server 2025 comes withe following capabilities for AI applications:
- A native vector type and vector index (DiskANN)
- Model management through model definitions built into T-SQL to popular AI services ground to cloud such as Azure OpenAI, OpenAI, Ollama, and KServe. Administrators have complete control to set permissions on who can create these definitions. Models are all accessed through REST APIs allowing you to deploy your models anywhere you want. In addition, SQL Server 2025 will support the system procedure sp_invoke_external_rest_endpoint to access any model interface you need through REST.
- Embedding generation and text chunking built into T-SQL.
- Vector searches through vector distance and vector index search functions built into T-SQL. Combine this with the powerful filtering of SQL Server to execute hybrid searches.
- Integration with Entity Framework Core and the popular AI frameworks LangChain and Semantic Kernel.
Developers have everything they need for AI. Administrators can use the powerful security model of SQL Server to grant only the permissions that are required. All of these AI features are consistent for SQL from ground to cloud to fabric.
Vector support exists already in Azure SQL today. Learn more at https://devblogs.microsoft.com/azure-sql/exciting-announcement-public-preview-of-native-vector-support-in-azure-sql-database.
Vamos comentar cada um delas a seguir. Se você é um DBA SQL ou desenvolvedor que ainda não viu esses termos, não se preocupa, que aqui vou tentar falar em uma linguagem mais do mundo de DBA.
A native vector type and vector index (DiskANN)
Esse aqui é um dos meus favoritos. Pra você entender isso, vamos lembrar algumas formas de indexação de texto no sql. Imagine que você tenha uma coluna com comentários de um produto e queria achar quem falou a frase muito bom:
SELECT id,usuario FROM comentarios WHERE texto = 'muito bom'
Code language: SQL (Structured Query Language) (sql)
Essa query tem vários problemas que você deve conhecer bem. Primeiro, é que você precisa indexar a coluna texto. Considerando que são comentários pequenos, você conseguirá eficientemente buscar pelo texto EXATO ‘muito bom’. Mas, quem disse “gostei, muito bom mesmo”, não vai ser retornado, afinal, você está buscando pelo texto exato. Então, você tem um índice especial no sql server chamado “Full Text”, que poderia melhorar sua situação:
SELECT id,usuario FROM comentarios WHERE CONTAINS(texto , '"muito bom"')
Code language: SQL (Structured Query Language) (sql)
Aqui você já está melhor… Mas quem disse “UAU! QUE PRODUTO INCRÍVEL”, não vai ser retornado pela sua query. Aí você tem que fazer malabarismos, manter listas de sinônimos, etc. Nada preciso e perfeito…
E é aqui onde a IA entra. Existe um conceito chamado Embeddings. Modelos de IA conseguem gerar um array (também chamam de vetor, daí o nome “vector” do título) que representa o significado desse texto (Esse artigo do Jay Alammar explica muito bem e visualmente o conceito).
Dois textos com o mesmo significado vão produzir arrays com valores muito próximos. Existem vários algoritmos matemáticos que podem ser usados para gerar uma comparação e ter dar um score de proximidade. E, não somente proximidade, mas também existem vários algoritmos de indexação.. Isto é, você praticamente consegue indexar o significado de um texto e buscar pelo significado. Então, com essa feature do SQL Server, você vai fazer isso:
- Adiciona uma coluna na sua tabela com o tipo vector (o sql se vira internamente para armazenar esse array do jeito que ele achar melhor).
- Cria um vector index nessa coluna (o sql vai usar esse algoritmo DiskANN para a estrutura desse índice no arquivo e memória)
- Toda vez que você inserir ou atualizar o texto, você calcula esse embedding usando algum modelo de IA e insere junto nessa coluna, e o sql já atualiza pra você
- Para os dados existentes, faça um script que calcula os embeddings do que já estava lá e atualiza.
Quando você precisar buscar o produto, você vai calcular o embedding do texto usando o mesmo modelo de IA que usou para armazenar, e vai usar algum operador ou função que a Microsoft deve disponibilizar para fazer a busca e retornar os que mais se aproximam. Imagino que seja algo nesse sentido:
SELECT id,usuario FROM comentarios WHERE CONTAINS_VECTOR(texto , 'muito bom')
Code language: SQL (Structured Query Language) (sql)
No exemplo acima, CONTAINS_VECTOR é só um exemplo. Pode ser que venha um operador novo (tipo o = ou LIKE), pode ser que sejam funções onde você vai escolher qual o algoritmo de comparação, etc. Mas, a ideia central é essa: Você agora poderá, diretamente do seu SQL pesquisar pela semântica do texto.
Ah Rodrigo, mas e esse modelo de IA? Como eu vou acessar isso? Tenho que instalar uma IA dentro do SQL?
Aqui você tem várias possibilidades, e a escolha do seu modelo é crucial… Veja os próximos itens a seguir que falamos mais sobre o modelo…
Model management through model definitions built into T-SQL
Esse aqui foi uma surpresa pra mim… Pelo que entendi, a partir do T-SQL, você vai conseguir invocar as APIs dos principais serviços de IA, especialmente, dos LLM, que são os modelos de linguagem, isto é, esses que geram texto.
O fato é: Vai ter algum jeito de você acessar um modelo de IA de dentro do SQL, usando T-SQL. O que fiquei na dúvida é se o único jeito será usando essa procedure sp_invoke_external_rest_endpoint , para invocar uma API direto, ou se terá algo embutido no T-SQL (por exemplo, uma builtin function GENERATETEXT).
E também, parece que haverão comandos para que você possa criar as definições desses modelos… Que provavelmente será a URL deles, credenciais de acesso, e, chutando aqui, talvez até definir uma System Message e temperatura, que são parâmetros comuns do mundo dos LLM que permitem controlar como o modelo gera texto.
Será que veremos um CREATE AI MODEL ?
Embedding generation and text chunking built into T-SQL.
Aqui eu gostei e isso me animou… Se eu entendi aqui, você vai conseguir gerar os embeddings direto do t-sql… Provavelmente uma função. Talvez isso seja integrado a feature anterior, onde você definirá o modelo, e poderá usar essa funções de gerar embeddings com base nessa definição…
Text chunking é algo que não falei aqui ainda para vocês, mas, é basicamente um jeito de quebrar um texto. Imagina no exemplo do comentário acima, que eles possam ser gigantes, com centenas de milhares de caracteres.
Os modelos de IA tem um limite que é conhecido com “Context Window”. Isto é, eles não consegue processar qualquer quantidade de texto de uma vez. Para fazer esses casos, você precisa quebrar esse texto em partes menores, e aí sim, gerar o embedding dessas partes menores. Existem várias técnicas, desde um chunk simples como quebrar até um certo número de palavras, desde as avançadas que usam IA para quebrar semanticamente.
Não ficou claro em qual nível o SQL 2025 vai suportar, mas eu arrisco dizer que serão funções simples.
Vector searches through vector distance and vector index search functions built into T-SQL
Aqui acho que é algo óbvio com base no que já expliquei ali do início… Se você tem o vector data type, o vector index, vai precisar de funções que operam nesses tipos de dados e índice. Mas aqui, ele deixa explícito que serão Vector Index Search Functions, ou seja, muito provavelmente teremos várias funções que vamos poder usar em uma coluna com o tipo vector, e, se tiver indexada, ela deve conseguir eficientemente fazer a busca!
Lembrando que existem vários algoritmos para comparar esses vetores, cada um com prós e contras. Tem algoritmo que é muito rápido, mas com 90% de precisão por exemplo (o que é chamado de Recall Rate). Isso signfica que, dependendo do algoritmo, você aceita que ele não encontre todos os itens relacionados a aquele texto, mas que é tão rápido que vale a pena… Já outros, que você quer 100% de precisão, mas espera pagar mais pela performance… Ainda sim, não ficou claro se o SQL vai suportar toda essa gama de opções (como tem no Milvus, que é um banco só para vector database, por exemplo)…
De qualquer maneira, acho que aqui o DBA terá bastante trabalho junto com os times de arquitetura e desenvolvimento para definirem a melhor estratégia. E, obviamente, com revisão constante.
Integration with Entity Framework Core and the popular AI frameworks LangChain and Semantic Kernel
Nesse mundo de IA, surgiu um monte de biblioteca que facilita a vida. Muito provavelmente isso aqui diz respeito as integrações nativas com essas funcionalidades do SQL que serão adicionadas nessas bibliotecas.
Quem usa essas bibliotecas, provavelmente terá um jeito bem fácil de inserir e recuperar dados dessas novas estruturas que o SQL Server 2025 vai trazer!
E aí, tá animado pro quem vem ai? Eu tô hein!
Se você quiser saber um pouco mais de detalhes desses termos de IA, tipo LLM, vector, embedding, etc., recomendo esse outro artigo aqui do blog: O que é OpenAI, Redes Neurais, Arquitetura, LLM e outros conceitos da IA? Ele é um mapa visual de vários conceitos e tecnologias que existem. A parte de embeddings e vector database pode te ajudar a entender mais o que vem por aí!
Bom, esse post vai inaugurar uma série de post em que vou trazendo a medida que consigo ir testando as features. Fica ligado, pois até já pensei em várias baterias de testes para descobrir e trazer informações!
Apaixonado por tecnologia e veterano em bancos de dados SQL Server, este entusiasta agora se aventura no fascinante universo da Inteligência Artificial.
Atualmente é o Head de Inovação da Power Tuning, onde é o responsável por trazer novas ideias para produtos e serviços, que melhorem a produtividade do time ou a experiência do cliente! Com muita experiência em programação, hardware, sistemas operacionais, e mais, agora quer juntar tudo isso nesse novo mundo e trazer muitas ideias e conhecimento sobre Inteligência Artificial!
Neste blog, vai compartilhar sua jornada de aprendizado e uso da IA, focando em como transformar nossa maneira de resolver problemas e inovar.
Contents
- A native vector type and vector index (DiskANN)
- Model management through model definitions built into T-SQL
- Embedding generation and text chunking built into T-SQL.
- Vector searches through vector distance and vector index search functions built into T-SQL
- Integration with Entity Framework Core and the popular AI frameworks LangChain and Semantic Kernel