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_DETAIL
Utilisez SYS_QUERY_DETAIL pour afficher les détails des requêtes à différents niveaux métriques, chaque ligne représentant les détails d'une requête WLM particulière à un niveau métrique donné. Cette vue contient de nombreux types de requêtes, comme les commandes DDL, DML et utilitaire (par exemple, copier et décharger). Certaines colonnes peuvent ne pas être pertinentes en fonction du type de requête. Par exemple, external_scanned_bytes n’est pas pertinent pour les tables internes.
SYS_QUERY_DETAIL 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. |
child_query_séquence | entier | La séquence de la requête utilisateur réécrite, en commençant par 1. |
stream_id | entier | Identificateur de flux du flux d’exécution de la requête. |
segment_id | entier | Identificateur du segment d’exécution de la requête. |
step_id | entier | Identificateur d’étape dans un segment. |
step_name | text | Nom de l’étape dans un segment. Les valeurs possibles sont aggregate broadcast ,delete ,distribute ,hash ,hashjoin ,insert ,limit ,merge ,nestloop ,parse ,return ,save ,scan ,sort ,sortlimit ,unique , etwindow . |
table_id | entier | Identificateur de table pour les analyses permanentes de table. |
table_name | character(136) | Nom de la table de l’étape en cours d’opération. |
is_rrscan | character | Valeur qui indique si une étape est une étape d’analyse. La valeur true (t), indique qu’une analyse à plage restreinte a été utilisée. |
start_time | timestamp | Heure à laquelle l’étape de requête a commencé. Ce champ est enregistré au niveau du segment, quelle que soit la valeur de la metrics_level colonne. |
end_time | timestamp | Heure à laquelle l’étape de requête s’est terminée. Ce champ est enregistré au niveau du segment, quelle que soit la valeur de la metrics_level colonne. |
duration | bigint | Temps (microsecondes) passé sur l’étape. Ce champ est enregistré au niveau du segment, quelle que soit la valeur de la metrics_level colonne. |
alerte | text | Description de l’événement d’alerte. |
input_bytes | bigint | Octets en entrée de l’étape en cours. |
input_rows | bigint | Lignes d’entrée de l’étape en cours. |
output_bytes | bigint | Octets de sortie de l’étape en cours. |
output_rows | bigint | Lignes de sortie de l’étape en cours. |
blocks_read | bigint | Nombre de blocs lus par l’étape. |
blocks_write | bigint | Nombre de blocs écrits par l’étape. |
local_read_IO | bigint | Nombre de blocs lus depuis le cache du disque local. |
remote_read_IO | bigint | Nombre de blocs lus à distance. |
source | text | Type d’objet de base de données qui a été scanné. Cette colonne n’a de valeur que lorsque la valeur step_name de la ligne est scan . |
data_skewness | entier | Asymétrie de la répartition des lignes de sortie entre toutes les étapes. Il s’agit d’un nombre compris entre 0 et 100 %. Plus le nombre est élevé, plus la répartition est déséquilibrée. |
time_skewness | entier | Asymétrie de la répartition du temps d’exécution entre toutes les étapes. Il s’agit d’un nombre compris entre 0 et 100 %. Plus le nombre est élevé, plus la répartition est déséquilibrée. |
is_active | character | État de la requête au niveau de l’étape. Les valeurs possibles sont « t » (étape en cours d’exécution) ou « f » (étape en fin d’exécution). |
spilled_block_local_disk | bigint | Nombre de blocs déversés sur le disque local. |
spilled_block_remote_disk | bigint | Nombre de blocs déversés vers Amazon Simple Storage Service. |
step_attribute | character(64) | Contient des informations concernant l’étape associée. Valeurs possibles pour les étapes d’analyse : multi-dimensional . |
metrics_level | character(64) | Le niveau métrique de la requête. Les valeurs possibles sont les suivantes :
|
plan_parent_id | entier | Identifiant du nœud parent du nœud du plan. Un nœud parent peut avoir plusieurs nœuds enfants. Par exemple, une jointure par fusion est le nœud parent des scans sur les tables jointes. |
plan_node_id | entier | Identifiant d'un nœud de plan mappé à une ou plusieurs étapes de la requête. |
Notes d’utilisation
SYS_QUERY_DETAIL peut contenir des métriques au niveau de l'étape, du stream, du segment et de la requête enfant. En plus de référencer la colonne metrics_level, vous pouvez voir le niveau de métrique affiché par une ligne donnée en référençant les champs step_id, segment_id et stream_id conformément au tableau suivant.
Niveau métrique | valeur stream_id | valeur segment_id | valeur step_id |
---|---|---|---|
requête pour enfant | -1 | -1 | -1 |
stream | Une valeur d'étape valide | -1 | -1 |
segment | Une valeur d'étape valide | Une valeur d'étape valide | -1 |
step | Une valeur d'étape valide | Une valeur d'étape valide | Une valeur d'étape valide |
Exemples de requêtes
L’exemple suivant renvoie la sortie de SYS_QUERY_DETAIL.
La requête suivante montre le détail des métadonnées de la requête au niveau de l’étape, y compris le nom de l’étape, input_bytes, output_bytes, input_rows, output_rows.
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, trim(step_name) AS step_name, duration, input_bytes, output_bytes, input_rows, output_rows FROM sys_query_detail WHERE query_id IN (193929) ORDER BY query_id, stream_id, segment_id, step_id DESC;
Exemple de sortie.
query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | duration | input_bytes | output_bytes | input_rows | output_rows ----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+------------- 193929 | 2 | 0 | 0 | 3 | hash | 37144 | 0 | 9350272 | 0 | 292196 193929 | 5 | 0 | 0 | 3 | hash | 9492 | 0 | 23360 | 0 | 1460 193929 | 1 | 0 | 0 | 3 | hash | 46809 | 0 | 9350272 | 0 | 292196 193929 | 4 | 0 | 0 | 2 | return | 7685 | 0 | 896 | 0 | 112 193929 | 1 | 0 | 0 | 2 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 2 | 0 | 0 | 2 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 2 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 2 | return | 11033 | 0 | 14336 | 0 | 112 193929 | 2 | 0 | 0 | 1 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 1 | 0 | 0 | 1 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 1 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 1 | aggregate | 11033 | 0 | 201488 | 0 | 14 193929 | 4 | 0 | 0 | 1 | aggregate | 7685 | 0 | 28784 | 0 | 14 193929 | 5 | 0 | 0 | 0 | scan | 9492 | 0 | 23360 | 292196 | 1460 193929 | 4 | 0 | 0 | 0 | scan | 7685 | 0 | 1344 | 112 | 112 193929 | 2 | 0 | 0 | 0 | scan | 37144 | 0 | 7304900 | 292196 | 292196 193929 | 3 | 0 | 0 | 0 | scan | 11033 | 0 | 13440 | 112 | 112 193929 | 1 | 0 | 0 | 0 | scan | 46809 | 0 | 7304900 | 292196 | 292196 193929 | 5 | 0 | 0 | -1 | | 9492 | 12288 | 0 | 0 | 0 193929 | 1 | 0 | 0 | -1 | | 46809 | 16384 | 0 | 0 | 0 193929 | 2 | 0 | 0 | -1 | | 37144 | 16384 | 0 | 0 | 0 193929 | 4 | 0 | 0 | -1 | | 7685 | 28672 | 0 | 0 | 0 193929 | 3 | 0 | 0 | -1 | | 11033 | 114688 | 0 | 0 | 0
Pour afficher les tables de votre base de données dans l’ordre, de la plus utilisée à la moins utilisée, utilisez l’exemple suivant. sample_data_dev
Remplacez-le par votre propre base de données. Notez que cette requête compte les requêtes à partir de la création de votre cluster, mais que les données de votre vue système ne sont pas enregistrées lorsque votre entrepôt des données manque d’espace.
SELECT table_name, COUNT (DISTINCT query_id) FROM SYS_QUERY_DETAIL WHERE table_name LIKE 'sample_data_dev%' GROUP BY table_name ORDER BY COUNT(*) DESC;
+---------------------------------+-------+ | table_name | count | +---------------------------------+-------+ | sample_data_dev.tickit.venue | 4 | | sample_data_dev.myunload1.venue | 3 | | sample_data_dev.tickit.listing | 1 | | sample_data_dev.tickit.category | 1 | | sample_data_dev.tickit.users | 1 | | sample_data_dev.tickit.date | 1 | | sample_data_dev.tickit.sales | 1 | | sample_data_dev.tickit.event | 1 | +---------------------------------+-------+
L'exemple suivant montre les différents niveaux de mesure pour une seule requête WLM.
SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, step_name, start_time, end_time, metrics_level FROM sys_query_detail WHERE query_id = 1553 AND step_id = -1 ORDER BY stream_id, segment_id, step_id; query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | start_time | end_time | metrics_level ----------+----------------------+-----------+------------+---------+-----------+----------------------------+----------------------------+--------------- 1553 | 1 | -1 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.847838 | child query 1553 | 1 | 0 | -1 | -1 | | 2024-10-17 02:28:49.814721 | 2024-10-17 02:28:49.835609 | stream 1553 | 1 | 0 | 0 | -1 | | 2024-10-17 02:28:49.824677 | 2024-10-17 02:28:49.830372 | segment 1553 | 1 | 1 | -1 | -1 | | 2024-10-17 02:28:49.835624 | 2024-10-17 02:28:49.845773 | stream 1553 | 1 | 1 | 1 | -1 | | 2024-10-17 02:28:49.84088 | 2024-10-17 02:28:49.842388 | segment 1553 | 1 | 1 | 2 | -1 | | 2024-10-17 02:28:49.835926 | 2024-10-17 02:28:49.844396 | segment 1553 | 1 | 2 | -1 | -1 | | 2024-10-17 02:28:49.846949 | 2024-10-17 02:28:49.847838 | stream 1553 | 1 | 2 | 3 | -1 | | 2024-10-17 02:28:49.847013 | 2024-10-17 02:28:49.847485 | segment (8 rows)