Description
Cette table contient des données de profilage au niveau des processeurs (que vous pouvez retrouver dans EXPLAIN PIPELINE).
Colonnes
hostname(LowCardinality(String)) — Nom d’hôte du serveur qui exécute la requête.event_date(Date) — Date à laquelle l’événement s’est produit.event_time(DateTime) — Date et heure auxquelles l’événement s’est produit.event_time_microseconds(DateTime64(6)) — Date et heure, avec une précision à la microseconde, auxquelles l’événement s’est produit.id(UInt64) — ID du processeur.parent_ids(Array(UInt64)) — ID des processeurs parents.plan_step(UInt64) — ID de l’étape du plan de requête qui a créé ce processeur. La valeur est égale à zéro si le processeur n’a été ajouté par aucune étape.plan_step_name(String) — Nom de l’étape du plan de requête qui a créé ce processeur. La valeur est vide si le processeur n’a été ajouté par aucune étape.plan_step_description(String) — Description de l’étape du plan de requête qui a créé ce processeur. La valeur est vide si le processeur n’a été ajouté par aucune étape.plan_group(UInt64) — Groupe du processeur s’il a été créé par une étape du plan de requête. Un groupe correspond à un partitionnement logique des processeurs ajoutés par la même étape du plan de requête. Il est utilisé uniquement pour rendre plus lisible le résultat de EXPLAIN PIPELINE.initial_query_id(String) — ID de la requête initiale dans la même chaîne de requêtes.query_id(String) — ID de la requête.name(LowCardinality(String)) — Nom du processeur.elapsed_us(UInt64) — Nombre de microsecondes pendant lesquelles ce processeur a été exécuté.input_wait_elapsed_us(UInt64) — Nombre de microsecondes pendant lesquelles ce processeur a attendu des données (provenant d’un autre processeur).output_wait_elapsed_us(UInt64) — Nombre de microsecondes pendant lesquelles ce processeur a attendu parce que le port de sortie était plein.input_rows(UInt64) — Nombre de lignes consommées par le processeur.input_bytes(UInt64) — Nombre d’octets consommés par le processeur.output_rows(UInt64) — Nombre de lignes générées par le processeur.output_bytes(UInt64) — Nombre d’octets générés par le processeur.processor_uniq_id(String) — ID unique du processeur dans le pipeline.step_uniq_id(String) — ID unique de l’étape dans le plan.
Exemple
EXPLAIN PIPELINE
SELECT sleep(1)
┌┌─name────────────────────┬─elapsed_us─┬─input_wait_elapsed_us─┬─output_wait_elapsed_us─┐
│ ExpressionTransform │ 1000497 │ 2823 │ 197 │
│ LazyOutputFormat │ 36 │ 1002188 │ 0 │
│ LimitsCheckingTransform │ 10 │ 1002994 │ 106 │
│ NullSource │ 5 │ 1002074 │ 0 │
│ NullSource │ 1 │ 1002084 │ 0 │
│ SourceFromSingleChunk │ 45 │ 4736 │ 1000819 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘Ici, vous pouvez voir :
ExpressionTransformexécutait la fonctionsleep(1), donc sonworkprendra 1e6, etelapsed_us> 1e6.SourceFromSingleChunkdoit attendre, carExpressionTransformn’accepte aucune donnée pendant l’exécution desleep(1); il sera donc dans l’étatPortFullpendant 1e6 us, etoutput_wait_elapsed_us> 1e6.LimitsCheckingTransform/NullSource/LazyOutputFormatdoivent attendre queExpressionTransformexécutesleep(1)pour traiter le résultat, doncinput_wait_elapsed_us> 1e6.