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.
Profileur de requêtes
Ce document décrit le profileur de requêtes, un outil graphique permettant d'analyser les composants et les performances d'une requête.
Le profileur de requêtes est une fonctionnalité de surveillance et de résolution des requêtes consultable via la console Amazon Redshift. C'est utile pour analyser les performances des requêtes. Son objectif principal est de présenter un ordre d'exécution visuel et graphique, un plan d'exécution et des statistiques sur une requête, afin de les rendre plus faciles à comprendre et à résoudre. Le profileur de requêtes vous permet d'analyser les types de composants de requête suivants :
Requêtes enfants : une requête enfant est une partie du travail effectué à partir d'une requête. Amazon Redshift peut diviser une requête en plusieurs requêtes enfants si cela s'avère plus efficace que de la traiter comme une seule requête volumineuse. Dans le profileur, vous pouvez voir les propriétés de chaque requête enfant. Une requête enfant est composée de flux et de sous-composants supplémentaires.
Les types de requêtes enfants affichés par le profileur de requêtes sont généralement les suivants :
Requête de table temporaire : le texte de cette requête enfant commence par la
CREATE TEMP TABLE
commande. Cette requête enfant crée des tables temporaires que d'autres requêtes enfants peuvent traiter.Requête de statistiques : le profileur de requêtes ajoute le commentaire suivant au début de cette requête enfant pour aider à l'identifier :
-- collect statistics of child query
queryID
Cette requête enfant collecte des informations que le moteur de requêtes Amazon Redshift utilise pour optimiser les performances.
Note
Le profileur de requêtes affiche la requête fournie par l'utilisateur comme dernière requête enfant exécutée par Amazon Redshift.
Streams — Un flux est un ensemble de segments répartis sur des tranches de nœuds de calcul disponibles. Chaque requête enfant est composée d'un ou de plusieurs segments. Dans Query Profiler, vous pouvez voir les propriétés de chaque flux, telles que son temps d'exécution. En parcourant la liste des streams, il est probable que vous puissiez rapidement détecter les problèmes de performance.
Segments — Un segment est une combinaison de plusieurs étapes qu'un seul processus peut exécuter. Un segment est également la plus petite unité de compilation exécutable par une tranche de nœud de calcul. Une tranche est l’unité de traitement parallèle dans Amazon Redshift. Les segments d’un flux s’exécutent en parallèle. Le profileur de requêtes n'affiche pas les segments graphiquement, mais vous pouvez accéder aux informations des segments pour une étape dans le volet de détails de cette étape.
Étapes — Chaque segment est composé d'un ensemble d'étapes. Une étape est une partie du travail d'une requête. Les étapes peuvent inclure un hashjoin, par exemple, ou un scan, c'est-à-dire la lecture d'enregistrements d'une table.
Pour plus d'informations sur les flux, les segments et les étapes, consultez le flux de travail de planification et d'exécution des requêtes dans le manuel Amazon Redshift Database Developer Guide.
Le profileur de requêtes affiche les informations renvoyées par les SYS_CHILD_QUERY_TEXT
vues SYS_QUERY_HISTORY
SYS_QUERY_DETAIL
SYS_QUERY_EXPLAIN
, et. Pour plus d'informations sur ces vues, consultez SYS_QUERY_HISTORY, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN et SYS_CHILD_QUERY_TEXT dans le manuel Amazon Redshift Database Developer Guide.
Le profileur de requêtes affiche uniquement les informations relatives aux requêtes récemment exécutées sur la base de données. Une requête qui se termine en utilisant des données de cache préremplies plutôt que d'être exécutée sur la base de données n'aura pas de profil de requête si aucune information n'était disponible auparavant pour cette requête. Cela est dû au fait qu'Amazon Redshift ne génère pas de plan de requête pour ce produit.
Conditions préalables à l'utilisation du profileur de requêtes
Conçues pour être faciles à utiliser et réduire la complexité, les vues de surveillance SYS fournissent une gamme complète de métriques pour une surveillance et un dépannage efficaces. Les vues de surveillance SYS garantissent également l'historique des requêtes des sept derniers jours, quelle que soit la taille ou l'activité du cluster. Les utilisateurs n'ont de visibilité que pour les requêtes qu'ils ont exécutées, tandis que les super utilisateurs ont une visibilité sur les requêtes de tous les utilisateurs.
Votre compte ou rôle d'utilisateur IAM a besoin d'autorisations pour accéder à la section de surveillance des requêtes et des bases de données de la console. Cette section décrit comment ajouter des autorisations à un compte ou à un rôle d'utilisateur.
Utilisez la politique suivante pour ajouter des autorisations minimales à votre compte ou rôle d'utilisateur IAM :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"redshift:DescribeClusters",
"redshift-serverless:ListNamespaces",
"redshift-serverless:ListWorkgroups",
"redshift-data:ExecuteStatement",
"redshift-data:DescribeStatement",
"redshift-data:GetStatementResult"
],
"Resource": [
"arn:aws:redshift-serverless:<your-namespace>",
"arn:aws:redshift-serverless:<your-workgroupname>",
"arn:aws:redshift:<your-clustername>"
]
}
]
}
Rubriques
Octroi d'autorisations de surveillance des requêtes pour un rôle
Les utilisateurs dotés d'un rôle sys:monitor
autorisé peuvent consulter toutes les requêtes. Les utilisateurs dotés d'un rôle sys:operator
autorisé peuvent annuler des requêtes, analyser l'historique des requêtes et effectuer des opérations de vide.
Pour accorder une autorisation de surveillance des requêtes à un rôle
Utilisez la commande suivante pour fournir un accès au moniteur système, où
role-name
est le nom du rôle pour lequel vous souhaitez fournir l'accès.grant role sys:monitor to "IAMR:
role-name
";(Facultatif) Utilisez la commande suivante pour fournir l'accès à l'opérateur système, où
role-name
est le nom du rôle pour lequel vous souhaitez fournir l'accès.grant role sys:operator to "IAMR:
role-name
";
Octroi d'autorisations de surveillance des requêtes à un utilisateur
Les utilisateurs sys:monitor
autorisés peuvent consulter toutes les requêtes. Les utilisateurs sys:operator
autorisés peuvent annuler des requêtes, analyser l'historique des requêtes et effectuer des opérations de vide.
Pour accorder une autorisation de surveillance des requêtes à un utilisateur
Utilisez la commande suivante pour fournir un accès au moniteur système, où
user-name
est le nom de l'utilisateur auquel vous souhaitez fournir l'accès.grant role sys:monitor to "IAMR:
user-name
";(Facultatif) Utilisez la commande suivante pour fournir l'accès à l'opérateur système, où
-name
est le nom de l'utilisateur auquel vous souhaitez fournir l'accès.grant role sys:operator to "IAMR:
user-name
";
Informations d’identification temporaires utilisant votre identité IAM
Cette option est disponible uniquement lors de la connexion à un cluster. Avec cette méthode, Query Profiler associe un nom d'utilisateur à votre identité IAM et génère un mot de passe temporaire pour vous connecter à la base de données en tant qu'identité IAM. Un utilisateur utilisant cette méthode pour se connecter doit disposer de l’autorisation IAM pour redshift:GetClusterCredentialsWithIAM
. Pour empêcher les utilisateurs d’utiliser cette méthode, modifiez leur rôle ou utilisateur IAM afin de refuser cette autorisation.
Accès au profileur de requêtes dans la console Amazon Redshift pour analyser une requête
Vous pouvez accéder à Query Profiler pour Amazon Redshift sans serveur ou Amazon Redshift provisionné. Consultez les sections suivantes pour obtenir des détails :
Rubriques
Accès au profileur de requêtes dans la console Amazon Redshift pour Amazon Redshift Serverless
Pour accéder au profileur de requêtes pour Amazon Redshift Serverless, procédez comme suit :
Ouvrez la console sans serveur Amazon Redshift.
Dans le volet de navigation, sous Surveillance, sélectionnez Surveillance des requêtes et des bases de données.
Choisissez un groupe de travail.
Choisissez Requêtes et surveillance des bases de données.
Choisissez une requête.
Choisissez l'onglet Plan de requête sur la page Détails de la requête.
Si un plan de requêtes est disponible, vous verrez une liste de requêtes secondaires. Choisissez une requête pour l'afficher dans le profileur de requêtes.
Accès au profileur de requêtes dans la console Amazon Redshift pour Amazon Redshift Provisioned
Pour accéder au profileur de requêtes pour Amazon Redshift Provisioned, procédez comme suit :
Ouvrez le tableau de bord des clusters provisionnés Amazon Redshift.
Choisissez un cluster
Choisissez Query monitoring (Surveillance des requêtes).
Se connecter à une base de données
Choisissez Requêtes et surveillance des bases de données.
Choisissez une requête.
Si un plan de requêtes est disponible, vous verrez une liste de requêtes secondaires. Choisissez une requête pour l'afficher dans le profileur de requêtes.
Interface utilisateur du profileur de requêtes
Le profileur de requêtes utilise les pages suivantes pour afficher les informations relatives à votre requête :
Page de détails de la requête— Cette page affiche les statistiques et les requêtes secondaires relatives à votre requête.
Page de requête pour enfants— Cette page affiche les statistiques, les flux et une représentation visuelle du plan d'exécution d'une requête enfant. La console affiche cette page lorsque vous choisissez une requête enfant dans la liste des requêtes enfants de la page Surveillance des requêtes et des bases de données.
Page de détails de la requête

La page de détails de la requête comprend les éléments suivants :
Volet supérieur : le volet en haut de la page affiche les détails de la requête, tels que son statut et son type. Pour plus d'informations sur la source des informations affichées dans le volet supérieur, consultez SYS_QUERY_HISTORY dans le manuel Amazon Redshift Database Developer Guide.
Onglet SQL — Cet onglet du panneau inférieur affiche le texte SQL de la requête utilisateur d'origine.
Onglet Plan de requêtes : cet onglet du panneau inférieur affiche la liste des requêtes enfants qu'Amazon Redshift utilise pour préparer les données et les statistiques pour la requête de l'utilisateur. Par défaut, la liste des requêtes enfant affiche des informations et des statistiques agrégées sur chaque requête enfant. Pour plus d'informations sur la source des informations affichées sur cette page, consultez SYS_QUERY_DETAIL dans le manuel Amazon Redshift Database Developer Guide.
Vous pouvez ajouter ou supprimer des colonnes de la liste des requêtes enfants à l'aide du menu Préférences.
Mesures associées — Cet onglet du panneau inférieur affiche les CloudWatch mesures suivantes pour la requête :
Capacité RPU utilisée (pour les groupes de travail sans serveur) : capacité de calcul utilisée par la requête, mesurée en unités de traitement Redshift (). RPUs Pour de plus amples informations, veuillez consulter Capacité de calcul pour Amazon Redshift sans serveur.
État de santé du cluster, utilisation du processeur, capacité de stockage utilisée (pour les clusters provisionnés) : état et ressources système utilisées par la requête.
Connexions de base de données actives :
DatabaseConnections
métrique de la requête.
Pour plus d'informations sur CloudWatch les métriques, consultezDonnées de performance dans Amazon Redshift.
Page de requête pour enfants

La page de requête Child comporte les éléments suivants :
Liste déroulante des requêtes enfants : ce contrôle indique le nom de la séquence et le temps d'exécution de chaque requête enfant. Vous pouvez accéder à d'autres requêtes enfants en les sélectionnant dans ce contrôle.
Panneau latéral — Ce panneau contient des onglets permettant d'afficher les flux de requêtes enfants et le texte de la requête enfant.
Onglet Child Query Streams : cet onglet du panneau supérieur affiche les éléments suivants :
Streams — Ce volet affiche la liste des flux contenus dans la requête enfant. Ce volet affiche des informations et des données agrégées sur les flux utilisés par Amazon Redshift pour optimiser la requête. Pour plus d'informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le manuel Amazon Redshift Database Developer Guide.
Vous pouvez ajouter ou supprimer des colonnes dans le volet Streams à l'aide du menu Préférences. Vous accédez au menu Préférences à l'aide de l'icône en forme de roue dentée dans le volet Streams.
Volet de requête enfant : représentation graphique des étapes de la requête enfant. Pour plus d'informations sur le volet de requête Child, reportez-vous à la section Volet de requêtes pour enfants suivante.
Onglet de texte de la requête enfant : cet onglet du panneau supérieur affiche le code SQL de la requête enfant.
Volet des détails de la requête enfant : ce volet situé dans le panneau de droite affiche les détails de la requête enfant. Pour plus d'informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le manuel Amazon Redshift Database Developer Guide.
Volet des détails du flux : lorsque vous choisissez un flux dans le volet Streams, le volet Stream details affiche des informations sur le stream. Pour plus d'informations sur les détails de ce panneau, consultez SYS_QUERY_DETAIL dans le manuel Amazon Redshift Database Developer Guide.
Volet des détails de l'étape : lorsque vous choisissez une étape dans le volet Streams ou dans le graphique du plan de requête Child, le volet Détails de l'étape affiche des informations sur l'étape. Pour plus d'informations sur les détails de ce volet, consultez SYS_QUERY_DETAIL dans le manuel Amazon Redshift Database Developer Guide. :
Volet de requêtes pour enfants
Le profileur de requêtes affiche la requête enfant dans le volet de requête enfant sous forme de représentation graphique des étapes de la requête enfant sélectionnée.
Le volet de requête Child affiche l'ordre d'exécution et les relations entre les étapes. Par exemple, si une étape joint le résultat de deux autres étapes, le volet de requête Child affiche l'étape sous la forme d'un nœud arborescent alimenté par deux nœuds :

Le volet de requête Child n'affiche pas les flux contenant les étapes par défaut. Pour afficher les flux utilisés par Amazon Redshift pour partitionner logiquement les étapes de la requête enfant, choisissez Afficher les flux. Lorsque vous choisissez Afficher les flux, le volet de requête Child affiche les étapes contenues dans les flux de la requête.
Le volet de requête Child n'affiche pas d'informations sur les segments. Pour voir le segment correspondant à une étape, sélectionnez l'étape. Le volet Détails de l'étape affiche ensuite le segment correspondant à l'étape.
Navigation dans le volet de requête Child
Dans le volet de requête Child, vous pouvez choisir des étapes pour obtenir des informations détaillées les concernant. Vous pouvez également déplacer et zoomer sur l'espace de travail pour mieux visualiser les étapes de votre plan de requête.
Vous pouvez choisir des nœuds, déplacer et zoomer dans le plan de requête Child en utilisant les méthodes suivantes :
À l'aide de la souris : vous pouvez choisir des nœuds, cliquer et faire glisser l'espace de travail pour le déplacer, et maintenir
Ctrl
(Windows) ouCMD
(Mac) et appuyer sur la molette de la souris pour zoomer. Le choix d'un nœud entraîne le zoom et le panoramique de l'espace de travail pour mettre en évidence ce nœud. Si vous choisissez un flux dans l'espace de travail, ce flux est surligné dans la liste des flux. Si vous choisissez une étape dans l'espace de travail, le volet Détails de l'étape affiche les informations relatives à cette étape.Utilisation des commandes de zoom et d'ajustement situées dans le coin supérieur gauche de l'espace de travail : ces commandes vous permettent de zoomer en avant, de dézoomer, de zoomer sur l'ensemble de l'espace de travail et de passer en mode plein écran. Lorsque vous zoomez pour l'adapter à l'ensemble du plan de requête, l'espace de travail centre le plan de requête à la fois horizontalement et verticalement.
Utilisation de la mini-carte dans le coin inférieur droit de l'espace de travail : vous pouvez déplacer ou zoomer sur l'espace de travail à l'aide de la commande de minicarte située dans le coin inférieur gauche de l'espace de travail.
Choix d'un flux dans le volet Streams : si vous choisissez un flux dans le volet Streams, l'espace de travail se déplace et zoome pour afficher le flux sélectionné, et affiche des informations sur le flux dans le volet Détails du flux.
Choix d'une étape dans le volet des détails du flux : si vous choisissez une étape dans le volet des détails du flux, l'espace de travail se déplace et zoome pour afficher l'étape sélectionnée, et affiche des informations sur l'étape dans le volet des détails de l'étape.
Note
Lorsque vous choisissez une étape, que ce soit dans l'espace de travail ou dans un autre volet, l'espace de travail tente de zoomer et de se déplacer de manière à ce que l'étape sélectionnée soit mieux visible.
Lorsque vous choisissez un flux ou une étape dans l'espace de travail ou dans un autre volet, l'espace de travail ne zoome et se déplace sur ce flux ou cette étape que si vous avez sélectionné Pan & Zoom dans le contrôle supérieur droit de l'espace de travail. Vous pouvez limiter ce comportement au panoramique et au zoom, au panoramique uniquement ou à l'absence de mouvement en choisissant le réglage approprié dans le menu déroulant.

Résolution des requêtes avec le profileur de requêtes
Si vous résolvez les problèmes liés à une requête, vous pouvez choisir une requête enfant afin de déterminer quel flux utilise le pourcentage le plus élevé du temps total de requête. Il s'agit d'un moyen rapide de déterminer quelle partie de votre requête doit être analysée de manière plus approfondie.
Une fois que vous avez déterminé quelle requête enfant prend le plus de temps, consultez ses étapes pour déterminer quelle jointure ou quel scan est susceptible de ralentir les performances.