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.
SVL_QUERY_REPORT
Amazon Redshift crée la vue SVL_QUERY_REPORT à partir de l’UNION d’un certain nombre de tables système STL Amazon Redshift pour fournir des informations sur les étapes de la requête exécutées.
Cette vue décompose les informations sur les requêtes exécutées par tranche et par étape, ce qui peut aider à dépanner les problèmes de nœud et tranche du cluster Amazon Redshift.
SVL_QUERY_REPORT est visible pour tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour plus d’informations, consultez Visibilité des données dans les tables et vues système.
Tout ou partie des données de cette table sont également disponibles dans la vue de surveillance SYS SYS_QUERY_DETAIL. Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre. Nous vous recommandons d’utiliser la vue de surveillance SYS pour vos requêtes.
Colonnes de la table
Nom de la colonne | Type de données | Description |
---|---|---|
userid | entier | ID de l’utilisateur qui a généré l’entrée. |
query | entier | ID de requête. Permet de joindre d’autres tables système et vues. |
slice | entier | Tranche de données où l’étape a été exécutée. |
segment | entier |
Numéro de segment. Une requête se compose de plusieurs segments et chaque segment d’une ou de plusieurs étapes. Les segments de requête peuvent s’exécuter en parallèle. Chaque segment s’exécute dans un processus unique. |
étape | entier | Étape de requête terminée. |
start_time | timestamp | Heure exacte (au format UTC) de début d’exécution du segment, avec 6 chiffres de précision pour les fractions de seconde. Par exemple : 2012-12-12 11:29:19.131358 . |
end_time | timestamp | Heure exacte (au format UTC) de fin d’exécution du segment, avec 6 chiffres de précision pour les fractions de seconde. Par exemple : 2012-12-12 11:29:19.131467 |
elapsed_time | bigint | Durée (en microsecondes) de l’exécution du segment. |
rows | bigint | Nombre de lignes générées par l’étape (par tranche). Ce nombre représente le nombre de lignes pour la tranche qui résultent de l’exécution de l’étape, pas le nombre de lignes reçues ou traitées par l’étape. En d’autres termes, il s’agit du nombre de lignes qui survivent à l’étape et sont passées à l’étape suivante. |
bytes | bigint | Nombre d’octets générés par l’étape (par tranche). |
étiquette | char(256) | Étiquette de l’étape, qui se compose d’un nom d’étape de requête et, le cas échéant, d’un ID de table et d’un nom de table (par exemple, scan tbl=100448 name =user ). Les ID de table à trois chiffres font généralement référence aux analyses des tables temporaires. Lorsque
tbl=0 s’affiche, cela fait généralement référence à une analyse d’une valeur constante. |
is_diskbased | character(1) | Si cette étape de la requête a été exécutée comme une opération sur disque : true (t ) ou false (f ). Seules certaines étapes, telles que le hachage, le tri et l’agrégation, peuvent accéder au disque. La plupart des types d’étapes sont toujours exécutés en mémoire. |
workmem | bigint | Quantité de mémoire de travail (en octets) attribuée à l’étape de requête. Cette valeur est le seuil query_working_mem alloué pour l’utilisation lors de l’exécution, pas la quantité de mémoire réellement utilisée |
is_rrscan | character(1) | Si la valeur est définie sur true (t ), indique qu’une analyse à plage restreinte a été utilisée sur l’étape. |
is_delayed_scan | character(1) | Si la valeur est définie sur true (t ), indique qu’une analyse retardée a été utilisée sur l’étape. |
rows_pre_filter | bigint | Pour les analyses de tables permanentes, le nombre total de lignes émises avant le filtrage des lignes marquées pour la suppression (lignes fantôme) et avant l’application des filtres de requête définis par l’utilisateur. |
Exemples de requêtes
La requête suivante illustre le delta des données des lignes retournées pour la requête avec l’ID 279. Utilisez cette requête pour déterminer si les données de base de données sont réparties de façon uniforme sur les tranches du cluster d’entrepôt des données :
select query, segment, step, max(rows), min(rows), case when sum(rows) > 0 then ((cast(max(rows) -min(rows) as float)*count(rows))/sum(rows)) else 0 end from svl_query_report where query = 279 group by query, segment, step order by segment, step;
Cette requête doit renvoyer des données similaires à l’exemple de sortie suivant :
query | segment | step | max | min | case ------+---------+------+----------+----------+---------------------- 279 | 0 | 0 | 19721687 | 19721687 | 0 279 | 0 | 1 | 19721687 | 19721687 | 0 279 | 1 | 0 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 1 | 986085 | 986084 | 1.01411202804304e-06 279 | 1 | 4 | 986085 | 986084 | 1.01411202804304e-06 279 | 2 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 2 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 2 | 1775517 | 788460 | 1.00098637606408 279 | 3 | 3 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 0 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 1 | 1775517 | 788460 | 1.00098637606408 279 | 4 | 2 | 1 | 1 | 0 279 | 5 | 0 | 1 | 1 | 0 279 | 5 | 1 | 1 | 1 | 0 279 | 6 | 0 | 20 | 20 | 0 279 | 6 | 1 | 1 | 1 | 0 279 | 7 | 0 | 1 | 1 | 0 279 | 7 | 1 | 0 | 0 | 0 (19 rows)