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 vue SVCS_QUERY_SUMMARY pour rechercher des informations générales sur l’exécution d’une requête.

Notez que les informations de SVCS_QUERY_SUMMARY sont regroupées à partir de tous les nœuds.

Note

La vue SVCS_QUERY_SUMMARY contient uniquement des informations sur les requêtes exécutées par Amazon Redshift, et non sur d’autres commandes DDL ou d’utilitaire. Pour obtenir une liste complète et des informations sur toutes les instructions exécutées par Amazon Redshift, y compris les commandes DDL et d’utilitaire, vous pouvez interroger la vue SVL_STATEMENTTEXT.

Les vues système dotées du préfixe SVCS fournissent des détails à propos des requêtes sur le cluster principal et les clusters de mise à l’échelle de la simultanéité. Elles sont similaires aux vues dotées du préfixe SVL, si ce n’est que les vues SVL fournissent des informations uniquement pour les requêtes exécutées sur le cluster principal.

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

Pour plus d’informations sur SVL_QUERY_SOMMY, consultez SVL_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 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) 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 analysant les valeurs d’IS_DISKBASED, vous pouvez voir quelles étapes de requête sont allé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 la clause and is_diskbased = 't' à l’instruction SQL de l’exemple ci-dessus.