system.processors_profile_log
Запросы в ClickHouse Cloud
Данные в этой системной таблице хранятся локально на каждом узле в ClickHouse Cloud. Для получения полного представления о всех данных необходимо использовать функцию clusterAllReplicas
. Подробности см. здесь.
Эта таблица содержит профилирование на уровне процессоров (которое вы можете найти в EXPLAIN PIPELINE
).
Колонки:
hostname
(LowCardinality(String)) — Имя хоста сервера, выполняющего запрос.event_date
(Date) — Дата, когда произошло событие.event_time
(DateTime) — Дата и время, когда произошло событие.event_time_microseconds
(DateTime64) — Дата и время с точностью до микросекунд, когда произошло событие.id
(UInt64) — ID процессораparent_ids
(Array(UInt64)) — ID родительских процессоровplan_step
(UInt64) — ID шага плана запроса, который создал этот процессор. Значение равно нулю, если процессор не был добавлен ни с какого шага.plan_group
(UInt64) — Группа процессора, если он был создан шагом плана запроса. Группа — это логическая партиция процессоров, добавленных с одного и того же шага плана запроса. Группа используется только для улучшения представления результата EXPLAIN PIPELINE.initial_query_id
(String) — ID первоначального запроса (для распределенного выполнения запросов).query_id
(String) — ID запросаname
(LowCardinality(String)) — Имя процессора.elapsed_us
(UInt64) — Количество микросекунд, в течение которых был выполнен этот процессор.input_wait_elapsed_us
(UInt64) — Количество микросекунд, в течение которых этот процессор ждал данные (от другого процессора).output_wait_elapsed_us
(UInt64) — Количество микросекунд, в течение которых этот процессор ждал, потому что выходной порт был полон.input_rows
(UInt64) — Количество строк, обработанных процессором.input_bytes
(UInt64) — Количество байт, обработанных процессором.output_rows
(UInt64) — Количество строк, сгенерированных процессором.output_bytes
(UInt64) — Количество байт, сгенерированных процессором.
Пример
Запрос:
Результат:
Здесь вы можете видеть:
ExpressionTransform
выполнял функциюsleep(1)
, поэтому егоработа
займет 1e6, и такelapsed_us
> 1e6.SourceFromSingleChunk
нуждается в ожидании, потому чтоExpressionTransform
не принимает никаких данных во время выполненияsleep(1)
, поэтому он будет в состоянииPortFull
в течение 1e6 мс, и такoutput_wait_elapsed_us
> 1e6.LimitsCheckingTransform
/NullSource
/LazyOutputFormat
нуждаются в ожидании, покаExpressionTransform
выполнитsleep(1)
, чтобы обработать результат, так чтоinput_wait_elapsed_us
> 1e6.
Смотрите также