View a markdown version of this page

Utilisation de Spark optimiseur basé sur les coûts - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de Spark optimiseur basé sur les coûts

Sparkles versions 2.09 et ultérieures peuvent utiliser un optimiseur basé sur les coûts (CBO). Le CBO sélectionne le plan d'exécution le moins cher pour une requête en fonction de diverses statistiques de table. CBO essaie d'optimiser l'exécution de la requête en ce qui concerne l'utilisation du processeur et I/O de revenir ainsi le plus rapidement possible. Cependant, dans la plupart des cas, les statistiques de données sont souvent absentes, en particulier lorsque la collecte de statistiques est encore plus coûteuse que le traitement des données. Même si les statistiques sont disponibles, elles sont probablement périmées. Les meilleures pratiques d'utilisation du CBO sont les suivantes :

  • Collectez des statistiques sur toutes les colonnes utilisées dans des opérations telles que les jointures, les filtres et les groupes d'octets. Cela permet à l'optimiseur de prendre de meilleures décisions. ANALYZE TABLEÀ utiliser pour collecter des statistiques.

  • Augmenter la fréquence de collecte des statistiques si les données changent rapidement. Des statistiques périmées peuvent entraîner des plans non optimisés.

  • Commencez par les paramètres CBO par défaut et réglez-les uniquement si nécessaire. Les optimisations agressives peuvent augmenter les durées d'exécution.

  • Vérifiez si le CBO choisit les plans optimaux en forçant le plan optimisé et en comparant les performances. Activez la journalisation de l'optimiseur pour comparer les plans.

  • Pour de meilleures optimisations, utilisez le CBO en combinaison avec des indices de partitionnement, de compartimentage et d'inclinaison des données. Le partitionnement peut aider le CBO à évoluer.

  • Pour détecter rapidement les régressions du plan, surveillez en permanence les performances des requêtes après avoir activé le CBO.