Aller au contenu principal

Optimiser les performances des jointures dans Databricks

Avec Databricks, vous pouvez créer des jointures entre vos tables batch ou de streaming. Certaines jointures peuvent être coûteuses. Ce qui suit peut vous aider à optimiser vos jointures.

Pour plus d'informations sur les jointures, consultez Travailler avec les jointures sur Databricks.

Le compute avec Photon activé sélectionne toujours le meilleur type de jointure. Consultez Qu'est-ce que Photon ?. L'utilisation d'une version récente de Databricks Runtime avec Photon activée offre généralement de bonnes performances de jointure, mais vous devez également prendre en compte les recommandations suivantes :

  • Les jointures croisées sont coûteuses. Supprimez les jointures croisées des charges de travail et des requêtes qui nécessitent une faible latence ou des recalculs fréquents.

  • L'ordre des jointures est important. Lorsque vous effectuez plusieurs jointures, joignez toujours vos plus petites tables en premier, puis joignez le résultat avec les tables plus grandes.

  • L'optimiseur peut avoir du mal avec des **queries** comportant de nombreuses jointures et agrégations. L’enregistrement des résultats intermédiaires peut accélérer la planification des queries et le calcul des résultats.

  • Conservez des statistiques récentes pour améliorer les performances. L'optimisation prédictive met automatiquement à jour et maintient les statistiques. Consultez l'optimisation prédictive pour les tables gérées par Unity Catalog.

    Vous pouvez également exécuter la requête ANALYZE TABLE table_name COMPUTE STATISTICS pour mettre à jour les statistiques dans le planificateur de requêtes.

remarque

Dans Databricks Runtime 14,3 LTS et versions ultérieures, vous pouvez modifier les colonnes sur lesquelles Delta Lake collecte des statistiques pour l'omission de données, puis recalculer les statistiques existantes dans le log Delta. Voir Spécifier les colonnes de statistiques.