Utilisation de l’accélération des requêtes courtes - 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.

Utilisation de l’accélération des requêtes courtes

L'accélération des requêtes courtes (SQA) donne la priorité aux requêtes de courte durée sélectionnées par rapport aux requêtes de longue durée. SQAexécute des requêtes de courte durée dans un espace dédié, de sorte que les SQA requêtes ne soient pas obligées d'attendre dans des files d'attente derrière des requêtes plus longues. SQAdonne la priorité uniquement aux requêtes de courte durée qui se trouvent dans une file d'attente définie par l'utilisateur. AvecSQA, les requêtes de courte durée commencent à s'exécuter plus rapidement et les utilisateurs voient les résultats plus rapidement.

Si vous l'activezSQA, vous pouvez réduire les files d'attente de gestion de la charge de travail (WLM) dédiées à l'exécution de requêtes courtes. En outre, les requêtes de longue durée ne doivent pas nécessairement être confrontées à des requêtes courtes pour les emplacements d'une file d'attente. Vous pouvez donc configurer vos WLM files d'attente pour utiliser moins d'emplacements de requêtes. Lorsque vous utilisez une simultanéité réduite, le débit de requêtes est accru et les performances systèmes globales sont améliorées pour la plupart des charges de travail.

CREATETABLEEN TANT QUE(CTAS) et les requêtes en lecture seule, telles que les SELECT instructions, sont éligibles. SQA

Amazon Redshift utilise un algorithme de machine learning pour analyser chaque requête admissible et prédire l’heure d’exécution de la requête. Par défaut, attribue WLM dynamiquement une valeur pour le temps d'exécution SQA maximal en fonction de l'analyse de la charge de travail de votre cluster. Vous pouvez également spécifier une valeur fixe comprise entre 1 et 20 secondes. Si le temps d'exécution prévu de la requête est inférieur au temps d'exécution SQA maximal défini ou attribué dynamiquement et que la requête est en attente dans une WLM file d'attente, SQA sépare la requête des WLM files d'attente et la planifie pour une exécution prioritaire. Si une requête dépasse le temps d'exécution SQA maximal, WLM déplace la requête vers la première WLM file d'attente correspondante en fonction des règles WLM d'attribution des files d'attente. Au fil du temps, les prédictions s'améliorent à mesure SQA que vous apprenez de vos modèles de requêtes.

SQAest activé par défaut dans le groupe de paramètres par défaut et pour tous les nouveaux groupes de paramètres. Pour le désactiver SQA dans la console Amazon Redshift, modifiez la WLM configuration d'un groupe de paramètres et désélectionnez Activer l'accélération des requêtes courtes. Il est recommandé d'utiliser un nombre d'emplacements de WLM requêtes inférieur ou égal à 15 afin de maintenir des performances globales optimales du système. Pour plus d'informations sur la modification des WLM configurations, consultez la section Configuration de la gestion de la charge de travail dans le guide de gestion Amazon Redshift.

Durée d’exécution maximale pour les requêtes courtes

Lorsque vous l'activezSQA, WLM définit le temps d'exécution maximal pour les requêtes courtes sur dynamique par défaut. Nous vous recommandons de conserver le paramètre dynamique pour SQA une durée d'exécution maximale. Vous pouvez remplacer la valeur par défaut en spécifiant une valeur fixe comprise entre 1 et 20 secondes.

Dans certains cas, vous pouvez envisager d'utiliser des valeurs différentes pour les valeurs d'exécution SQA maximales afin d'améliorer les performances de votre système. Dans de tels cas, analysez votre charge de travail pour trouver la durée d’exécution maximale de la plupart de vos courtes requêtes. La requête suivante renvoie la durée d’exécution maximale pour les requêtes au 70e percentile (environ).

select least(greatest(percentile_cont(0.7) within group (order by total_exec_time / 1000000) + 2, 2), 20) from stl_wlm_query where userid >= 100 and final_state = 'Completed';

Après avoir identifié une valeur de délai d’exécution maximal correspondant à votre charge de travail, vous n’avez plus besoin de le modifier, sauf si votre charge de travail change de manière significative.

Surveillance SQA

Pour vérifier si cette option SQA est activée, exécutez la requête suivante. Si la requête renvoie une ligne, elle SQA est activée.

select * from stv_wlm_service_class_config where service_class = 14;

La requête suivante affiche le nombre de requêtes ayant parcouru chaque file d’attente de requête (classe de service). Elle affiche aussi la durée d’exécution moyenne, le nombre de requêtes avec un délai d’attente au 90e percentile et le délai d’attente moyen. SQArequêtes utilisées dans la classe de service 14.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Pour savoir quelles requêtes ont été prises en charge SQA et terminées avec succès, exécutez la requête suivante.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Completed' order by b.query desc limit 5;

Pour rechercher les requêtes qui SQA ont été récupérées mais dont le délai a expiré, exécutez la requête suivante.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class = 14 and a.final_state = 'Evicted' order by b.query desc limit 5;

Pour plus d’informations sur les requêtes expulsées et, plus généralement, sur les actions basées sur des règles qui peuvent être entreprises sur les requêtes, consultez WLMrègles de surveillance des requêtes.