Dans les bases de données relationnelles modernes, l'estimation de cardinalité (CE) joue un rôle crucial. En termes simples, l'estimation de cardinalité consiste à prédire le nombre de résultats intermédiaires qu'une requête de base de données renverra. Cette prédiction a un impact énorme sur le choix du plan d'exécution de l'optimiseur de requêtes, par exemple en déterminant l'ordre des jointures, l'utilisation d'index et la meilleure méthode de jointure. Si l'estimation de cardinalité est imprécise, le plan d'exécution peut être considérablement dégradé, entraînant une vitesse de requête extrêmement lente et affectant gravement les performances globales de la base de données.
Cependant, les méthodes d'estimation de cardinalité existantes présentent de nombreuses limitations. Les techniques CE traditionnelles reposent sur des hypothèses simplifiées et prédisent souvent avec peu de précision la cardinalité des requêtes complexes, en particulier celles impliquant plusieurs tables et conditions. Bien que les modèles CE d'apprentissage puissent offrir une meilleure précision, leur application est limitée par les longs temps d'entraînement, la nécessité de grands ensembles de données et le manque d'évaluation comparative systématique.
Pour combler cette lacune, l'équipe de recherche de Google a lancé CardBench, un nouveau framework de tests comparatifs. CardBench contient plus de 20 bases de données réelles et des milliers de requêtes, dépassant de loin les benchmarks précédents. Cela permet aux chercheurs d'évaluer et de comparer systématiquement différents modèles CE d'apprentissage dans diverses conditions. Ce benchmark prend en charge trois configurations principales : les modèles basés sur les instances, les modèles à zéro tir et les modèles fin-accordés, adaptés à différents besoins d'entraînement.
La conception de CardBench inclut également une série d'outils permettant de calculer les statistiques de données nécessaires, de générer des requêtes SQL réelles et de créer des graphes de requêtes annotés pour l'entraînement des modèles CE.
Ce benchmark fournit deux ensembles de données d'entraînement : un ensemble pour les requêtes sur une seule table avec plusieurs prédicats de conditions de filtrage, et un autre ensemble pour les requêtes de jointure binaire impliquant deux tables. Ce benchmark comprend 9125 requêtes sur une seule table et 8454 requêtes de jointure binaire, adaptées à un ensemble de données plus petit, garantissant ainsi un environnement robuste et stimulant pour l'évaluation des modèles. Les étiquettes des données d'entraînement provenant de Google BigQuery ont nécessité 7 années-CPU de temps d'exécution de requêtes, ce qui souligne l'investissement de calcul important pour la création de ce benchmark. En fournissant ces ensembles de données et ces outils, CardBench abaisse le seuil d'entrée pour les chercheurs qui développent et testent de nouveaux modèles CE.
Dans l'évaluation des performances effectuée avec CardBench, les modèles fin-accordés se sont particulièrement distingués. Bien que les modèles à zéro tir aient du mal à améliorer la précision lorsqu'ils sont appliqués à des ensembles de données invisibles, en particulier dans les requêtes complexes impliquant des jointures, les modèles fin-accordés peuvent atteindre une précision comparable aux méthodes basées sur les instances, avec beaucoup moins de données d'entraînement. Par exemple, les modèles de réseaux neuronaux graphiques (GNN) fin-accordés ont atteint une erreur médiane q de 1,32 et une erreur q au 95e centile de 120 dans les requêtes de jointure binaire, surpassant nettement les modèles à zéro tir. Les résultats montrent que même avec 500 requêtes, le fin-accordage des modèles pré-entraînés peut améliorer considérablement leurs performances. Cela les rend adaptés aux applications réelles où les données d'entraînement peuvent être limitées.
Le lancement de CardBench apporte un nouvel espoir au domaine de l'estimation de cardinalité par apprentissage, permettant aux chercheurs d'évaluer et d'améliorer plus efficacement les modèles, et stimulant ainsi le développement futur de ce domaine important.
Lien de l'article : https://arxiv.org/abs/2408.16170
Points clés :
- 📊 CardBench est un nouveau framework de tests comparatifs comprenant 20 bases de données réelles et des milliers de requêtes, permettant une évaluation systématique des modèles d'estimation de cardinalité par apprentissage.
- 🛠️ Ce benchmark fournit des outils pour calculer les statistiques de données, générer des requêtes SQL et créer des graphes de requêtes, abaissant le seuil d'entrée pour les chercheurs.
- 🚀 Les modèles fin-accordés ont excellé dans les évaluations de performances, atteignant une précision similaire aux modèles traditionnels avec peu de données d'entraînement, démontrant leur potentiel d'application réelle.