SVL_QUERY_REPORT - 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.

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)