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.
STV_QUERY_METRICS
Contient des informations sur les métriques, telles que le nombre total de lignes traitées et d’opérations d’entrée/sortie, l’utilisation de l’UC et l’utilisation du disque pour les requêtes actives s’exécutant dans les files d’attente de requêtes définies par l’utilisateur (classes de service). Pour afficher les métriques des requêtes qui ont été terminées, consultez la table système STL_QUERY_METRICS.
Les métriques de requête sont échantillonnées toutes les secondes. Par conséquent, la même requête exécutée plusieurs fois peut renvoyer des heures légèrement différentes. En outre, il est possible que les segments de requête qui s’exécutent en moins d’une seconde ne soient pas enregistrés.
STV_QUERY_METRICS suit et regroupe les métriques au niveau de la requête, du segment et de l’étape. Pour plus d’informations sur les segments et les étapes de requête, consultez Workflow d’exécution et de planification de requête. De nombreuses métriques (max_rows
, cpu_time
, etc.) sont additionnées entre les tranches de nœuds. Pour plus d’informations sur les tranches de nœuds, consultez Architecture système de l’entrepôt des données.
Pour déterminer le niveau auquel la ligne communique les métriques, observez les colonnes segment
et step_type
:
-
Si
segment
etstep_type
sont définis sur-1
, la ligne communique les métriques au niveau de la requête. -
Si
segment
n’est pas défini sur-1
et sistep_type
est défini sur-1
, la ligne communique les métriques au niveau du segment. -
Si
segment
etstep_type
ne sont pas définis sur-1
, la ligne communique les métriques au niveau de l’étape.
STV_QUERY_METRICS 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.
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.
Colonnes de la table
Nom de la colonne | Type de données | Description |
---|---|---|
userid | entier | ID de l’utilisateur qui a exécuté la requête qui a généré l’entrée. |
service_class | entier | ID de la file d’attente de requêtes WLM (classe de service). Les files d’attente de requêtes sont définies dans la configuration WLM. Les métriques sont communiquées uniquement pour les files d’attente définies par l’utilisateur. |
query | entier | ID de requête. La colonne de requête peut servir à joindre les autres tables système et les vues. |
starttime | timestamp | Heure au format UTC de début de l’exécution de la requête, avec 6 chiffres de précision pour les fractions de secondes. olpPar exemple : 2009-06-12 11:29:19.131358 . |
slices | entier | Nombre de tranches du cluster. |
segment | 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. Si le segment a une valeur de -1, les valeurs du segment de métriques sont reportées au niveau de la requête. |
step_type | entier | Type de l’étape exécutée. Pour obtenir une description des types d’étapes, consultez Types d’étapes. |
rows | bigint | Nombre de lignes traitées par une étape. |
max_rows | bigint | Nombre maximal de lignes produites pour une étape, regroupées entre toutes les tranches. |
cpu_time | bigint | Durée d’utilisation de l’UC, en microsecondes. Au niveau du segment, durée totale d’utilisation de l’UC pour le segment entre toutes les tranches. Au niveau de la requête, somme des durées d’utilisation de l’UC pour la requête entre toutes les tranches et tous les segments. |
max_cpu_time | bigint | Durée maximale d’utilisation de l’UC, en microsecondes. Au niveau du segment, durée maximale d’utilisation de l’UC par le segment entre toutes les tranches. Au niveau de la requête, durée maximale d’utilisation de l’UC par n’importe quel segment de requête. |
blocks_read | bigint | Nombre de blocs d’1 Mo lus par la requête ou le segment. |
max_blocks_read | bigint | Nombre maximal de blocs d’1 Mo lus par le segment, regroupés entre toutes les tranches. Au niveau du segment, nombre maximal de blocs d’1 Mo lus pour le segment entre toutes les tranches. Au niveau de la requête, nombre maximal de blocs d’1 Mo lus par n’importe quel segment de la requête. |
run_time | bigint |
Somme des durées totales d’exécution, entre les tranches. La durée d’attente n’est pas incluse dans le délai d’exécution. Au niveau du segment, somme des durées d’exécution pour le segment entre toutes les tranches. Au niveau de la requête, somme des durées d’exécution pour la requête entre toutes les tranches et tous les segments. Puisqu’il s’agit d’une somme, le délai d’exécution n’est pas lié au délai d’exécution de la requête. |
max_run_time | bigint | Durée maximale écoulée pour un segment (en microsecondes). Au niveau du segment, durée maximale d’exécution pour le segment entre toutes les tranches. Au niveau de la requête, durée maximale d’exécution pour n’importe quel segment de requête. |
max_blocks_to_disk | bigint | Quantité maximale d’espace disque utilisé pour écrire des résultats intermédiaires, en blocs de 1 Mo. Au niveau du segment, quantité maximale d’espace disque utilisé par le segment entre toutes les tranches. Au niveau de la requête, quantité maximale d’espace disque utilisé par n’importe quel segment de requête. |
blocks_to_disk | bigint | Quantité d’espace disque utilisé par une requête ou un segment pour écrire des résultats intermédiaires, en blocs de 1 Mo. |
étape | entier | Étape de la requête exécutée. |
max_query_scan_size | bigint | Taille maximale des données analysées par une requête, en Mo. Au niveau du segment, taille maximale des données analysées par le segment entre toutes les tranches. Au niveau de la requête, taille maximale des données analysées par n’importe quel segment de requête. |
query_scan_size | bigint | Taille des données analysées par une requête, en Mo. |
query_priority | entier | Priorité de la requête. Les valeurs possibles sont -1 , 0 , 1 , 2 , 3 et 4 , où -1 signifie que cette priorité de requête n’est pas prise en charge. |
query_queue_time | bigint | Durée, en microsecondes, pendant laquelle la requête a été mise en file d’attente. |
Types d’étapes
Le tableau suivant répertorie les types d’étapes relatifs aux utilisateurs des bases de données. Les types d’étapes relatifs à un usage interne uniquement ne sont pas inclus. Si le type d’étape est -1, la métrique n’est pas communiquée au niveau de l’étape.
Type d’étape | Description |
---|---|
1 | Analyser la table |
2 | Insérer des lignes |
3 | Regrouper les lignes |
6 | Étape de tri |
7 | Étape de fusion |
8 | Étape de distribution |
9 | Étape de distribution de diffusion |
10 | Joindre par hachage |
11 | Joindre par fusion |
12 | Étape d’enregistrement |
14 | Hachage |
15 | Jointure de boucle imbriquée |
16 | Champs et expressions du projet |
17 | Limite le nombre de lignes retournées |
18 | Unique |
20 | Supprimer les lignes |
26 | Limite le nombre de lignes triées retournées |
29 | Calcule une fonction de fenêtre |
32 | UDF |
33 | Unique |
37 | Retourne au client les lignes issues du nœud principal |
38 | Retourne au nœud principal les lignes issues des nœuds de calcul |
40 | Analyse du spectre |
Exemple de requête
Pour rechercher des requêtes actives avec un temps UC élevé (plus de 1 000 secondes), exécutez la requête suivante.
select query, cpu_time / 1000000 as cpu_seconds from stv_query_metrics where segment = -1 and cpu_time > 1000000000 order by cpu_time; query | cpu_seconds ------+------------ 25775 | 9540
Pour rechercher des requêtes actives avec une jonction de boucles imbriquées qui a renvoyé plus d’un million de lignes, exécutez la requête suivante.
select query, rows from stv_query_metrics where step_type = 15 and rows > 1000000 order by rows; query | rows ------+----------- 25775 | 1580225854
Pour rechercher des requêtes actives qui se sont exécutées pendant plus de 60 secondes et ont utilisé moins de 10 secondes de temps UC, exécutez la requête suivante.
select query, run_time/1000000 as run_time_seconds from stv_query_metrics where segment = -1 and run_time > 60000000 and cpu_time < 10000000; query | run_time_seconds ------+----------------- 25775 | 114