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.
SVV_QUERY_STATE
Utilisez SVV_QUERY_STATE pour afficher les informations sur l’exécution des requêtes en cours.
La vue SVV_QUERY_STATE contient un sous-ensemble de données de la table STV_EXEC_STATE.
SVV_QUERY_STATE 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 de plus amples informations, veuillez consulter 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.
Note
Cette vue n’est disponible que lors de l’interrogation des clusters alloués.
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. |
seg | entier | Numéro du segment de requête en cours d’exécution. 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 | Numéro de l’étape de requête en cours d’exécution. Une étape est la plus petite unité de l’exécution des requêtes. Chaque étape représente une unité de travail discrète, telle que l’analyse d’une table, le retour de résultats ou le tri de données. |
maxtime | interval | Durée maximale (en microsecondes) d’exécution de l’étape. |
avgtime | interval | Durée moyenne (en microsecondes) d’exécution de l’étape. |
rows | bigint | Nombre de lignes générées par l’étape en cours d’exécution. |
bytes | bigint | Nombre d’octets générés par l’étape en cours d’exécution. |
cpu | bigint | Pour utilisation interne. |
memory | bigint | Pour utilisation interne. |
rate_row | double precision | Rows-per-second taux depuis le début de la requête, calculé en additionnant les lignes et en divisant par le nombre de secondes entre le début de la requête et l'heure actuelle. |
rate_byte | double precision | Bytes-per-second taux depuis le début de la requête, calculé en additionnant les octets et en divisant par le nombre de secondes entre le début de la requête et l'heure actuelle. |
étiquette | character(25) | Étiquette de requête : nom pour l’étape, comme scan ou sort . |
is_diskbased | character(1) | Indique si l’étape de la requête s’exécute comme 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. |
num_parts | entier | Nombre de partitions entre lesquelles une table de hachage est divisée pendant une étape de hachage. Un nombre positif dans cette colonne n’implique pas que l’étape de hachage ait été exécutée comme opération sur disque. Vérifiez la valeur de la colonne IS_DISKBASED pour voir si l’étape de hachage était basée sur le disque. |
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 ). |
Exemples de requêtes
Détermination du temps de traitement d’une requête par étape
La requête suivante affiche le délai d’exécution de chaque étape de la requête avec l’ID de requête 279 et le nombre de lignes de données traitées par Amazon Redshift :
select query, seg, step, maxtime, avgtime, rows, label from svv_query_state where query = 279 order by query, seg, step;
Cette requête extrait les informations de traitement de la requête 279, comme illustré dans l’exemple de sortie suivant :
query | seg | step | maxtime | avgtime | rows | label ------+---------+------+---------+---------+---------+------------------- 279 | 3 | 0 | 1658054 | 1645711 | 1405360 | scan 279 | 3 | 1 | 1658072 | 1645809 | 0 | project 279 | 3 | 2 | 1658074 | 1645812 | 1405434 | insert 279 | 3 | 3 | 1658080 | 1645816 | 1405437 | distribute 279 | 4 | 0 | 1677443 | 1666189 | 1268431 | scan 279 | 4 | 1 | 1677446 | 1666192 | 1268434 | insert 279 | 4 | 2 | 1677451 | 1666195 | 0 | aggr (7 rows)
Détermination si des requêtes actives sont en cours d’exécution sur le disque
La requête suivante affiche si des requêtes actives sont en cours d’exécution sur le disque :
select query, label, is_diskbased from svv_query_state where is_diskbased = 't';
Cet exemple de sortie affiche les requêtes actives en cours d’exécution sur le disque :
query | label | is_diskbased -------+--------------+-------------- 1025 | hash tbl=142 | t (1 row)