Em bancos de dados relacionais modernos, a estimativa de cardinalidade (CE) desempenha um papel crucial. Simplificando, a estimativa de cardinalidade prevê quantos resultados intermediários uma consulta de banco de dados retornará. Essa previsão tem um impacto significativo na escolha do plano de execução pelo otimizador de consultas, influenciando decisões como a ordem de junção, o uso de índices e o melhor método de junção. Se a estimativa de cardinalidade for imprecisa, o plano de execução pode ser drasticamente prejudicado, levando a consultas extremamente lentas e afetando significativamente o desempenho geral do banco de dados.

No entanto, os métodos existentes de estimativa de cardinalidade apresentam diversas limitações. As técnicas tradicionais de CE dependem de suposições simplificadas, frequentemente falhando na previsão precisa da cardinalidade de consultas complexas, especialmente aquelas envolvendo múltiplas tabelas e condições. Embora os modelos de CE baseados em aprendizado de máquina possam oferecer maior precisão, sua aplicação é limitada pelo longo tempo de treinamento, necessidade de grandes conjuntos de dados e falta de avaliação comparativa sistemática.

Para preencher essa lacuna, a equipe de pesquisa do Google lançou o CardBench, um novo framework de testes comparativos. O CardBench inclui mais de 20 bancos de dados do mundo real e milhares de consultas, superando os benchmarks anteriores. Isso permite que os pesquisadores avaliem e comparem sistematicamente diferentes modelos de CE baseados em aprendizado de máquina em diversas condições. O benchmark suporta três configurações principais: modelos baseados em instâncias, modelos zero-shot e modelos fine-tuned, adequados a diferentes necessidades de treinamento.

O design do CardBench também inclui uma série de ferramentas que podem calcular as estatísticas de dados necessárias, gerar consultas SQL reais e criar gráficos de consultas anotados para treinamento de modelos CE.

O benchmark fornece dois conjuntos de dados de treinamento: um para consultas de tabela única com múltiplos predicados de condições de filtro e outro para consultas de junção binária envolvendo duas tabelas. O benchmark inclui 9125 consultas de tabela única e 8454 consultas de junção binária, aplicáveis a um conjunto de dados menor, garantindo um ambiente robusto e desafiador para a avaliação do modelo. Os rótulos de dados de treinamento originários do Google BigQuery exigiram 7 anos de CPU de tempo de execução de consultas, destacando o significativo investimento computacional na criação deste benchmark. Ao fornecer esses conjuntos de dados e ferramentas, o CardBench reduz a barreira de entrada para pesquisadores que desenvolvem e testam novos modelos CE.

image.png

Na avaliação de desempenho realizada com o CardBench, os modelos fine-tuned se destacaram. Embora os modelos zero-shot tenham dificuldade em melhorar a precisão quando aplicados a conjuntos de dados não vistos, especialmente em consultas complexas envolvendo junções, os modelos fine-tuned podem atingir precisão comparável aos métodos baseados em instâncias, com muito menos dados de treinamento. Por exemplo, um modelo de rede neural gráfica (GNN) fine-tuned atingiu um erro médio q de 1,32 e um erro q do percentil 95 de 120 em consultas de junção binária, superando significativamente os modelos zero-shot. Os resultados indicam que mesmo com 500 consultas, o fine-tuning de modelos pré-treinados pode melhorar significativamente seu desempenho. Isso os torna adequados para aplicações práticas onde os dados de treinamento podem ser limitados.

image.png

O lançamento do CardBench traz novas esperanças para o campo da estimativa de cardinalidade baseada em aprendizado de máquina, permitindo que os pesquisadores avaliem e melhorem os modelos de forma mais eficiente, impulsionando o desenvolvimento futuro dessa área crucial.

Link para o artigo:https://arxiv.org/abs/2408.16170

Pontos importantes:

- 📊 CardBench é um novo framework de benchmark que inclui 20 bancos de dados reais e milhares de consultas, suportando a avaliação sistemática de modelos de estimativa de cardinalidade baseados em aprendizado de máquina.

- 🛠️ O benchmark fornece ferramentas para calcular estatísticas de dados, gerar consultas SQL e criar gráficos de consultas, reduzindo a barreira de entrada para os pesquisadores.

- 🚀 Os modelos fine-tuned apresentaram desempenho excepcional na avaliação de desempenho, atingindo precisão semelhante aos modelos tradicionais com poucos dados de treinamento, demonstrando potencial para aplicações práticas.