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

SVCS_QUERY_SUMMARY

Utilisez la SUMMARY vue SVCS QUERY _ _ pour trouver des informations générales sur l'exécution d'une requête.

Notez que les informations contenues dans SVCS _ QUERY _ SUMMARY sont agrégées à partir de tous les nœuds.

Note

La SUMMARY vue SVCS _ QUERY _ contient uniquement des informations sur les requêtes effectuées par Amazon Redshift, et DDL non sur d'autres utilitaires ou commandes. Pour obtenir une liste complète et des informations sur toutes les instructions effectuées par Amazon Redshift, y compris DDL les commandes utilitaires, vous pouvez interroger la vue SVL _STATEMENTTEXT.

Les vues du système avec le préfixe SVCS fournissent des détails sur les requêtes sur les clusters de dimensionnement principaux et simultanés. Les vues sont similaires aux vues préfixées, SVL sauf qu'elles fournissent des informations uniquement pour les requêtes exécutées sur le cluster principal. SVL

SVCS_ QUERY _ SUMMARY est visible par tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour de plus amples informations, veuillez consulter Visibilité des données dans les tables et vues système.

Certaines ou toutes les données de ce tableau se trouvent également dans la vue SYS de surveillanceSYS_QUERY_DETAIL. Les données de la vue SYS de surveillance sont formatées pour être plus faciles à utiliser et à comprendre. Nous vous recommandons d'utiliser la vue SYS de surveillance pour vos requêtes.

Pour plus d'informations sur SVL QUERY _ _SUMMARY, consultezSVL_QUERY_SUMMARY.

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.
stm entier Flux : ensemble de segments simultanés d’une requête. Une requête possède un ou plusieurs flux.
seg 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 la requête exécutée.
maxtime bigint Durée maximale (en microsecondes) d’exécution de l’étape.
avgtime bigint Durée moyenne (en microsecondes) d’exécution de l’étape.
rows bigint Nombre de lignes de données impliquées dans l’étape de requête.
bytes bigint Nombre d’octets de données impliqués dans l’étape de requête.
rate_row double precision Taux d’exécution de la requête par ligne.
rate_byte double precision Taux d’exécution de la requête par octet.
étiquette text É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 tables à trois chiffres font IDs généralement référence à des scans de tables transitoires. Lorsque tbl=0 s’affiche, cela fait généralement référence à une analyse d’une valeur constante.
is_diskbased character(1) Indique si cette étape de la requête a été exécutée comme opération sur disque sur un nœud du cluster : 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.
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. La valeur par défaut est false (f).
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. La valeur par défaut est false (f).
rows_pre_filter bigint Pour les analyses des tables permanentes, le nombre total de lignes émises avant le filtrage des lignes marquées comme devant être supprimées (lignes fantôme).

Exemples de requêtes

Affichage des informations de traitement d’une étape de requête

La requête suivante affiche les informations de traitement de base de chaque étape de la requête 87 :

select query, stm, seg, step, rows, bytes from svcs_query_summary where query = 87 order by query, seg, step;

Cette requête extrait les informations de traitement de la requête 87, comme illustré dans l’exemple de sortie suivant :

query | stm | seg | step | rows | bytes -------+-----+-----+------+--------+--------- 87 | 0 | 0 | 0 | 90 | 1890 87 | 0 | 0 | 2 | 90 | 360 87 | 0 | 1 | 0 | 90 | 360 87 | 0 | 1 | 2 | 90 | 1440 87 | 1 | 2 | 0 | 210494 | 4209880 87 | 1 | 2 | 3 | 89500 | 0 87 | 1 | 2 | 6 | 4 | 96 87 | 2 | 3 | 0 | 4 | 96 87 | 2 | 3 | 1 | 4 | 96 87 | 2 | 4 | 0 | 4 | 96 87 | 2 | 4 | 1 | 1 | 24 87 | 3 | 5 | 0 | 1 | 24 87 | 3 | 5 | 4 | 0 | 0 (13 rows)

Détermination si les étapes de requête ont été répandues sur le disque

La requête suivante indique si l’une des étapes de la requête avec l’ID de requête 1025 (voir la vue SVL_QLOG pour apprendre à obtenir l’ID d’une requête) a été répandue sur le disque ou si la requête a été entièrement exécutée en mémoire :

select query, step, rows, workmem, label, is_diskbased from svcs_query_summary where query = 1025 order by workmem desc;

Cette requête renvoie l’exemple de sortie suivant :

query| step| rows | workmem | label | is_diskbased -----+-----+--------+-----------+---------------+-------------- 1025 | 0 |16000000| 141557760 |scan tbl=9 | f 1025 | 2 |16000000| 135266304 |hash tbl=142 | t 1025 | 0 |16000000| 128974848 |scan tbl=116536| f 1025 | 2 |16000000| 122683392 |dist | f (4 rows)

En scannant les valeurs de IS_DISKBASED, vous pouvez voir quelles étapes de requête ont été transférées sur le disque. Pour la requête 1025, l’étape de hachage a été exécutée sur le disque. Les étapes susceptibles de s’exécuter sur disque incluent les étapes de hachage, d’agrégation et de tri. Pour afficher uniquement les étapes de requête sur disque, ajoutez une and is_diskbased = 't' clause à l'SQLinstruction dans l'exemple ci-dessus.