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.
SYS_QUERY_HISTORY
Utilisez SYS _ QUERY _ HISTORY pour afficher les détails des requêtes des utilisateurs. Chaque ligne représente une requête utilisateur avec des statistiques cumulées pour certains des champs. Cette vue contient de nombreux types de requêtes, telles que le langage de définition des données (DDL), le langage de manipulation des données (DML), les requêtes de copie, de déchargement et Amazon Redshift Spectrum. Elle contient à la fois les requêtes en cours d’exécution et terminées.
SYS_ QUERY _ HISTORY 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.
Colonnes de la table
Nom de la colonne | Type de données | Description |
---|---|---|
user_id | entier | Identificateur de l’utilisateur qui a envoyé la requête. |
query_id | bigint | Identificateur de requête. |
query_label | caractère (320) | Nom abrégé de la requête. |
transaction_id | bigint | Identificateur de transaction. |
session_id | entier | Identificateur de processus du processus exécutant la requête. |
database_name | character(128) | Nom de la base de données à laquelle l’utilisateur était connecté lorsque la requête a été émise. |
query_type | character(32) | Type de requête, tel que,, SELECTINSERT,UPDATE,UNLOAD,COPY,COMMAND,DDL,UTILITY,CTAS, etOTHER. |
status | character(10) | Statut de la requête. Valeurs valides : planification, mise en file d’attente, exécution, retour, échec, annulation et succès. |
result_cache_hit | Booléen | Indique si la requête correspond au cache de résultats. |
start_time | timestamp | Heure à laquelle la requête a commencé. |
end_time | timestamp | Heure à laquelle la requête s’est terminée. |
elapsed_time | bigint | Temps total (microsecondes) passé sur la requête. |
queue_time | bigint | Temps total (microsecondes) passé dans la file d’attente de requêtes de classe de service. |
execution_time | bigint | Durée totale (microsecondes) d’exécution dans la classe de service. |
error_message | character(512) | Raison pour laquelle une requête a échoué. |
returned_rows | bigint | Nombre de lignes retournées au client. |
returned_bytes | bigint | Nombre d’octets retournés au client. |
query_text | character(4000) | Chaîne de requête. Cette chaîne peut être tronquée. |
redshift_version | character(256) | Version Amazon Redshift lors de l’exécution de la requête. |
usage_limit | character(150) | Liste des limites d'utilisation IDs atteintes par la requête. |
compute_type | varchar(32) | Indique si la requête s’exécute sur le cluster principal ou sur le cluster de mise à l’échelle de simultanéité. Les valeurs possibles sont primary (la requête s’exécute sur le cluster principal), secondary (la requête s’exécute sur le cluster secondaire), ou primary-scale (la requête s’exécute sur le cluster de simultanéité). Cela ne s’applique qu’au cluster provisionné. |
compile_time | bigint | Le temps total (en microsecondes) consacré à la compilation de la requête. |
planning_time | bigint | Le temps total (en microsecondes) consacré à la planification de la requête. |
lock_wait time | bigint | Le temps total (microsecondes) passé à attendre le verrou relationnel. |
identifiant_classe de service | entier | L'ID de la classe de service. Pour obtenir la liste des classes de serviceIDs, rendez-vous surWLMclasse de service IDs. Cette colonne est uniquement utilisée pour les requêtes exécutées sur des clusters provisionnés. Pour les requêtes exécutées sur Redshift Serverless, cette colonne contient -1. |
service_class_name | character(64) | Nom de la classe de service. Cette colonne est uniquement utilisée pour les requêtes exécutées sur des clusters provisionnés. Pour les requêtes exécutées sur Amazon Redshift Redshift Serverless, cette colonne est vide. |
query_priority | character(20) | Priorité de la file d'attente dans laquelle la requête a été exécutée. Les valeurs possibles sont les suivantes :
NULLsignifie que la priorité de la requête n'est pas prise en charge pour la requête. Cette colonne est uniquement utilisée pour les requêtes exécutées sur des clusters provisionnés. Pour les requêtes exécutées sur Redshift Serverless, cette colonne est vide. |
requête_courte accélérée | character(10) | Si la requête a été accélérée à l'aide de l'accélération des requêtes courtes (SQA). Les valeurs possibles sont les suivantes :
Cette colonne est uniquement utilisée pour les requêtes exécutées sur des clusters provisionnés. Pour les requêtes exécutées sur Redshift Serverless, cette colonne est vide. |
Exemples de requêtes
La requête suivante renvoie les requêtes en cours d’exécution et en file d’attente.
SELECT user_id, query_id, transaction_id, session_id, status, trim(database_name) AS database_name, start_time, end_time, result_cache_hit, elapsed_time, queue_time, execution_time FROM sys_query_history WHERE status IN ('running','queued') ORDER BY start_time;
Exemple de sortie.
user_id | query_id | transaction_id | session_id | status | database_name | start_time | end_time | result_cache_hit | elapsed_time | queue_time | execution_time ---------+----------+----------------+------------+---------+---------------+---------------------------+----------------------------+------------------+--------------+------------+---------------- 101 | 760705 | 852337 | 1073832321 | running | tpcds_1t | 2022-02-15 19:03:19.67849 | 2022-02-15 19:03:19.739811 | f | 61321 | 0 | 0
La requête suivante renvoie l’heure de début, l’heure de fin, la durée de la file d’attente, le temps écoulé, le temps de planification et et d’autres métadonnées pour une requête spécifique.
SELECT user_id, query_id, transaction_id, session_id, status, trim(database_name) AS database_name, start_time, end_time, result_cache_hit, elapsed_time, queue_time, execution_time, planning_time, trim(query_text) as query_text FROM sys_query_history WHERE query_id = 3093;
Exemple de sortie.
user_id | query_id | transaction_id | session_id | status | database_name | start_time | end_time | result_cache_hit | elapsed_time | queue_time | execution_time | planning_time | query_text --------+----------+----------------+------------+------------+---------------+----------------------------+----------------------------+------------------+--------------+------------+----------------+---------------+------------------------------------- 106 | 3093 | 11759 | 1073750146 | success | dev | 2023-03-16 16:53:17.840214 | 2023-03-16 16:53:18.106588 | f | 266374 | 0 | 105725 | 136589 | select count(*) from item;
La requête suivante répertorie les 10 SELECT requêtes les plus récentes.
SELECT query_id, transaction_id, session_id, start_time, elapsed_time, queue_time, execution_time, returned_rows, returned_bytes FROM sys_query_history WHERE query_type = 'SELECT' ORDER BY start_time DESC limit 10;
Exemple de sortie.
query_id | transaction_id | session_id | start_time | elapsed_time | queue_time | execution_time | returned_rows | returned_bytes ----------+----------------+------------+----------------------------+--------------+------------+----------------+---------------+---------------- 526532 | 61093 | 1073840313 | 2022-02-09 04:43:24.149603 | 520571 | 0 | 481293 | 1 | 3794 526520 | 60850 | 1073840313 | 2022-02-09 04:38:27.24875 | 635957 | 0 | 596601 | 1 | 3679 526508 | 60803 | 1073840313 | 2022-02-09 04:37:51.118835 | 563882 | 0 | 503135 | 5 | 17216 526505 | 60763 | 1073840313 | 2022-02-09 04:36:48.636224 | 649337 | 0 | 589823 | 1 | 652 526478 | 60730 | 1073840313 | 2022-02-09 04:36:11.741471 | 14611321 | 0 | 14544058 | 0 | 0 526467 | 60636 | 1073840313 | 2022-02-09 04:34:11.91463 | 16711367 | 0 | 16633767 | 1 | 575 511617 | 617946 | 1074009948 | 2022-01-20 06:21:54.44481 | 9937090 | 0 | 9899271 | 100 | 12500 511603 | 617941 | 1074259415 | 2022-01-20 06:21:45.71744 | 8065081 | 0 | 7582500 | 100 | 8889 511595 | 617935 | 1074128320 | 2022-01-20 06:21:44.030876 | 1051270 | 0 | 1014879 | 1 | 72 511584 | 617931 | 1074030019 | 2022-01-20 06:21:42.764088 | 609033 | 0 | 485887 | 100 | 8438
La requête suivante indique le nombre quotidien de requêtes de sélection et le temps moyen écoulé pour les requêtes.
SELECT date_trunc('day',start_time) AS exec_day, status, COUNT(*) AS query_cnt, AVG(datediff (microsecond,start_time,end_time)) AS elapsed_avg FROM sys_query_history WHERE query_type = 'SELECT' AND start_time >= '2022-01-14' AND start_time <= '2022-01-18' GROUP BY exec_day, status ORDER BY exec_day, status;
Exemple de sortie.
exec_day | status | query_cnt | elapsed_avg ---------------------+---------+-----------+------------ 2022-01-14 00:00:00 | success | 5253 | 56608048 2022-01-15 00:00:00 | success | 7004 | 56995017 2022-01-16 00:00:00 | success | 5253 | 57016363 2022-01-17 00:00:00 | success | 5309 | 55236784 2022-01-18 00:00:00 | success | 8092 | 54355124
La requête suivante indique la performance quotidienne du temps moyen écoulé pour les requêtes.
SELECT distinct date_trunc('day',start_time) AS exec_day, query_count.cnt AS query_count, Percentile_cont(0.5) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P50_runtime, Percentile_cont(0.8) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P80_runtime, Percentile_cont(0.9) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P90_runtime, Percentile_cont(0.99) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS P99_runtime, Percentile_cont(1.0) within group(ORDER BY elapsed_time) OVER (PARTITION BY exec_day) AS max_runtime FROM sys_query_history LEFT JOIN (SELECT date_trunc('day',start_time) AS day, count(*) cnt FROM sys_query_history WHERE query_type = 'SELECT' GROUP by 1) query_count ON date_trunc('day',start_time) = query_count.day WHERE query_type = 'SELECT' ORDER BY exec_day;
Exemple de sortie.
exec_day | query_count | p50_runtime | p80_runtime | p90_runtime | p99_runtime | max_runtime ---------------------+-------------+-------------+-------------+-------------+--------------+-------------- 2022-01-14 00:00:00 | 5253 | 16816922.0 | 69525096.0 | 158524917.8 | 486322477.52 | 1582078873.0 2022-01-15 00:00:00 | 7004 | 15896130.5 | 71058707.0 | 164314568.9 | 500331542.07 | 1696344792.0 2022-01-16 00:00:00 | 5253 | 15750451.0 | 72037082.2 | 159513733.4 | 480372059.24 | 1594793766.0 2022-01-17 00:00:00 | 5309 | 15394513.0 | 68881393.2 | 160254700.0 | 493372245.84 | 1521758640.0 2022-01-18 00:00:00 | 8092 | 15575286.5 | 68485955.4 | 154559572.5 | 463552685.39 | 1542783444.0 2022-01-19 00:00:00 | 5860 | 16648747.0 | 72470482.6 | 166485138.2 | 492038228.67 | 1693483241.0 2022-01-20 00:00:00 | 1751 | 15422072.0 | 69686381.0 | 162315385.0 | 497066615.00 | 1439319739.0 2022-02-09 00:00:00 | 13 | 6382812.0 | 17616161.6 | 21197988.4 | 23021343.84 | 23168439.0
La requête suivante indique la distribution du type de requête.
SELECT query_type, COUNT(*) AS query_count FROM sys_query_history GROUP BY query_type ORDER BY query_count DESC;
Exemple de sortie.
query_type | query_count ------------+------------- UTILITY | 134486 SELECT | 38537 DDL | 4832 OTHER | 768 LOAD | 768 CTAS | 748 COMMAND | 92