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.
STL_QUERY
renvoie les informations d’exécution d’une requête de base de données.
Note
Les QUERYTEXT vues STL _ QUERY et STL _ contiennent uniquement des informations sur les requêtes, pas d'autres utilitaires ou DDL commandes. Pour obtenir une liste et des informations sur toutes les instructions exécutées par Amazon Redshift, vous pouvez également interroger les vues STL _ DDLTEXT et STL _UTILITYTEXT. Pour obtenir la liste complète de toutes les instructions exécutées par Amazon Redshift, vous pouvez interroger la vue SVL _STATEMENTTEXT.
STL_ QUERY 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_HISTORY. 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.
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. La colonne de requête peut servir à joindre les autres tables système et les vues. |
étiquette | caractère (320) | Soit le nom du fichier utilisé pour exécuter la requête, soit une étiquette définie par une GROUP commande SET QUERY _. Si la requête n'est pas basée sur un fichier ou si le GROUP paramètre QUERY _ n'est pas défini, la valeur de ce champ estdefault . |
xid | bigint | ID de transaction. |
pid | entier | ID du processus. En règle générale, toutes les requêtes d’une séance étant exécutées dans le même processus, cette valeur reste constante si vous exécutez une série de requêtes dans la même séance. À la suite de certains événements internes, Amazon Redshift peut redémarrer une session active et en attribuer une nouvelle. PID Pour de plus amples informations, veuillez consulter STL_RESTARTED_SESSIONS. |
database | character(32) | Nom de la base de données à laquelle l’utilisateur était connecté lorsque la requête a été émise. |
querytxt | character(4000) | Texte réel de la requête. |
starttime | timestamp | Heure à UTC laquelle la requête a commencé. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. olpPar exemple : 2009-06-12 11:29:19.131358 . |
endtime | timestamp | Heure à UTC laquelle la requête s'est terminée. Le temps total inclut la mise en file d'attente et l'exécution avec 6 chiffres de précision pour les fractions de secondes. olpPar exemple : 2009-06-12 11:29:19.131358 . |
aborted | entier | Si une requête a été arrêtée par le système ou annulée par l’utilisateur, cette colonne contient 1 . Si la requête est terminée (y compris le retour des résultats au client), cette colonne contient 0 . Si un client se déconnecte avant de recevoir les résultats, la requête est marquée comme annulée (1 ), même si elle s’est correctement terminée dans le backend. |
insert_pristine | entier | Si les requêtes d’écriture sont/ont pu être exécutées pendant que la requête actuelle est/était en cours d’exécution. 1 = aucune requête d’écriture n’est autorisée. 0 = les requêtes d’écriture sont autorisées. Cette colonne est destinée à être utilisée dans le débogage. |
concurrency_scaling_status | entier | Indique si la requête a été exécutée sur le cluster principal ou sur un cluster de mise à l’échelle de simultanéité. Les valeurs possibles sont les suivantes : 0 - Exécutée sur le cluster principal 1 - Exécutée sur un cluster de mise à l’échelle de simultanéité Supérieur à 1 - Exécutée sur le cluster principal |
Exemples de requêtes
La requête suivante répertorie les cinq requêtes les plus récentes.
select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)
La requête suivante renvoie la durée écoulée, par ordre décroissant, des requêtes exécutées le 15 février 2013.
select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)
La requête suivante montre le temps d’attente et le temps d’exécution des requêtes. Les requêtes avec concurrency_scaling_status = 1
ont été exécutées sur un cluster de mise à l’échelle de simultanéité. Toutes les autres requêtes ont été exécutées sur le cluster principal.
SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;