Flux de travail d’analyse des requêtes - Amazon Redshift

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.

Flux de travail d’analyse des requêtes

Si une requête est plus longue à traiter que prévu, utilisez les étapes suivantes pour identifier et corriger les problèmes susceptibles d’affecter négativement les performances de la requête. Si vous ne savez pas quelles requêtes de votre système peuvent voir leurs performances ajustées, commencez par exécuter la requête diagnostique dans Identification des requêtes particulièrement indiquées pour un ajustement.

  1. Assurez-vous que vos tables sont conçues conformément aux bonnes pratiques. Pour de plus amples informations, veuillez consulter Bonnes pratiques Amazon Redshift pour la conception de tables.

  2. Vérifiez si vous pouvez supprimer ou archiver des données superflues dans vos tables. Par exemple, supposons que vos requêtes ciblent toujours les six derniers mois de données, mais que vous avez les 18 derniers mois dans vos tables. Dans ce cas, vous pouvez supprimer ou archiver les données plus anciennes afin de réduire le nombre d’enregistrements devant être analysés et distribués.

  3. Exécutez la commande VACUUM sur les tables de la requête pour récupérer de l’espace et trier à nouveau les lignes. L’exécution de VACUUM est utile si la région non triée est volumineuse et que la requête utilise la clé de tri dans une jointure ou dans le prédicat.

  4. Exécutez la commande ANALYSE sur les tables de la requête pour vous assurer que les statistiques sont à jour. L’exécution de ANALYZE est utile si l’une des tables de la requête a considérablement changé de taille récemment. Si l’exécution d’une commande ANALYZE complète prend trop de temps, exécutez ANALYZE sur une seule colonne pour réduire le temps de traitement. Cette approche mettra toujours à jour les statistiques de taille de la table, laquelle taille est un facteur important dans la planification de la requête.

  5. Assurez-vous que votre requête a été exécutée une fois pour chaque type de client (en fonction du type de protocole de connexion utilisé par le client), afin que la requête soit mise à jour et en cache. Cette approche accélère les exécutions suivantes de la requête. Pour de plus amples informations, veuillez consulter Facteurs affectant la performance des requêtes.

  6. Vérifiez la table STL_ALERT_EVENT_LOG afin d’identifier et de corriger les éventuels problèmes avec votre requête. Pour de plus amples informations, veuillez consulter Révision des alertes de requêtes.

  7. Exécutez la commande EXPLAIN pour obtenir le plan de requête et l’utiliser afin d’optimiser la requête. Pour de plus amples informations, veuillez consulter Analyse du plan de requête.

  8. Utilisez les vues SVL_QUERY_SUMMARY et SVL_QUERY_REPORT pour obtenir des informations récapitulatives et les utiliser afin d’optimiser la requête. Pour de plus amples informations, veuillez consulter Analyse du résumé de la requête.

Parfois, une requête devant s’exécuter rapidement est contrainte d’attendre qu’une autre requête plus longue à s’exécuter se termine. Dans ce cas, vous pouvez ne rien avoir à améliorer dans la requête elle-même, mais vous pouvez améliorer les performances globales du système en créant et en utilisant des files d’attente de requête adaptées à chaque type de requête. Pour connaître les temps d’attente des files d’attente pour vos requêtes, consultez Vérification des temps d’attente des requêtes dans les files d’attente. Pour plus d’informations sur la configuration des files d’attente de requête, consultez Implémentation de la gestion de la charge de travail.