Skip to main content

Agente de Otimização SQL

O Agente de Otimização SQL é uma ferramenta integrada à plataforma Carol que auxilia a melhorar a performance de queries SQL. Ele analisa consultas, sugere melhorias e aponta pontos de atenção para otimização.


Pré-requisitos

  • Acesso à plataforma Carol.
  • Extensão Carol BigQuery instalada no VS Code.
  • Arquivo de query SQL com extensão .csql.

Como utilizar

VSCode

  1. Abra a query no arquivo .csql no VS Code com a extensão Carol SQL.
  2. Nas configurações do VSCode busque por "dialect", e selecione de acordo com a sua query, por padrão, a opção marcada é Carol Pipeline, baseada no dialeto do BigQuery.

Resultados da query Descrição da imagem: Selecionando o dialeto alterando a configuração do VS Code.

Como a extensão do VSCode possui integração direta com a Carol, temos algumas vantagens em utilizar o agente com o BigQuery, então o dialeto "Carol Pipeline" possui um comportamento diferente dos demais.

Carol Pipelines e BigQuery
  1. Clique no botão Carol - Run Query ou utilize o atalho correspondente que, por padrão, é a tecla F5.

  2. Aguarde a execução da query.

Resultados da query Descrição da imagem: Resultados da execução da query aparecem na aba lateral do VS Code.

  1. Após a execução, um botão Otimizar SQL aparecerá na parte inferior do editor. Ao clicá-lo a extensão envia a query ao agente de IA.
  2. O agente retorna:
  • Sugestões de melhoria automáticas: Refaz a query aplicando boas práticas.
  • Dicas e alertas: Pontos de atenção que o usuário deve avaliar manualmente.

Após isso basta revisar as sugestões e aceitar ou não as melhorias. Exemplo de otimização

Bancos Relacionais
  1. Clique no botão Carol - Run Query ou utilize o atalho correspondente que, por padrão, é a tecla F5.

  2. Diferentemente do BigQuery, a extensão do VSCode não possui acesso ao banco de dados relacional, portanto não é possível executar a query. Contudo, ainda é possível utilizar o otimizador para aprimorar as queries!

Resultados da query Descrição da imagem: Botões para obter e informar o schema do banco de dados.

  1. (Opcional)(Executar apenas uma vez) É possível informar os schemas e os índices do banco de dados. Ao clicar no botão Get Schema Command uma query SQL será copiada para a área de transferência, em seguida basta executar essa query no banco, copiar a linha obtida como resultado e, por último, clicar no botão Paste Schema.

    O que acabei de fazer?
    Essa query é responsável por organizar as informações de índices e schemas do banco de dados em um JSON, de forma que permita o agente entender o banco de dados utilizado. Essa ação só precisa ser executada uma vez a menos que sejam realizadas alterações no banco como a criação de novas tabelas ou índices.
  2. Basta clicar no botão Otimizar SQL no painel aberto no editor. Ao clicá-lo a extensão envia a query ao agente de IA.

  3. O agente retorna:

  • Sugestões de melhoria automáticas: Refaz a query aplicando boas práticas.
  • Dicas e alertas: Pontos de atenção que o usuário deve avaliar manualmente.

Após isso basta revisar as sugestões e aceitar ou não as melhorias. Exemplo de otimização

Pipeline Checkout

Também é possível obter sugestões de melhorias após realizar o checkout das pipelines na Carol!

  1. Ao executar um checkout aparecerá uma notificação com o botão "Otimizar SQL"

    Notificação Otimizar SQL

  2. Ao clicar será aberto um modal com uma lista de sugestões para otimizar nas pipelines.

    Sugestões de melhoria nas pipelines

Observações importantes

  • Nem todas as sugestões podem ser aplicadas diretamente. Avalie o contexto da pipeline antes de aplicar mudanças.
  • O agente não substitui a revisão humana, mas serve como uma ferramenta de apoio para melhorar performance e legibilidade.
  • As otimizações são baseadas em boas práticas para o dialeto selecionado nas configurações da extensão.
  • Revise as dicas do agente antes de implementar alterações.
  • Utilize a otimização como parte de um processo contínuo de melhoria de pipelines.

Limitações

Uso gratuito

  • Atualmente o agente possui um limite para otimizar queries baseado na quantidade de caracteres, caso seja enviada uma query com mais caracteres do que o especificado será retornada uma mensagem de erro avisando sobre o limite.
  • Em um primeiro momento, o agente contém uma limitação de chamadas gratuitas por usuário por mês. Caso tenha interesse em utilizar o agente com mais frequência entre em contato com o time IDeIA por meio de uma issue no Jira.