system.processors_profile_log
Querying in ClickHouse Cloud
The data in this system table is held locally on each node in ClickHouse Cloud. Obtaining a complete view of all data, therefore, requires the clusterAllReplicas function. See here for further details.
Description
This table contains profiling on processors level (that you can find in EXPLAIN PIPELINE).
Columns
hostname(LowCardinality(String)) — Hostname of the server executing the query.event_date(Date) — The date when the event happened.event_time(DateTime) — The date and time when the event happened.event_time_microseconds(DateTime64(6)) — The date and time with microseconds precision when the event happened.id(UInt64) — ID of processor.parent_ids(Array(UInt64)) — Parent processors IDs.plan_step(UInt64) — ID of the query plan step which created this processor. The value is zero if the processor was not added from any step.plan_step_name(String) — Name of the query plan step which created this processor. The value is empty if the processor was not added from any step.plan_step_description(String) — Description of the query plan step which created this processor. The value is empty if the processor was not added from any step.plan_group(UInt64) — Group of the processor if it was created by query plan step. A group is a logical partitioning of processors added from the same query plan step. Group is used only for beautifying the result of EXPLAIN PIPELINE result.initial_query_id(String) — ID of the initial query (for distributed query execution).query_id(String) — ID of the query.name(LowCardinality(String)) — Name of the processor.elapsed_us(UInt64) — Number of microseconds this processor was executed.input_wait_elapsed_us(UInt64) — Number of microseconds this processor was waiting for data (from other processor).output_wait_elapsed_us(UInt64) — Number of microseconds this processor was waiting because output port was full.input_rows(UInt64) — The number of rows consumed by processor.input_bytes(UInt64) — The number of bytes consumed by processor.output_rows(UInt64) — The number of rows generated by processor.output_bytes(UInt64) — The number of bytes generated by processor.processor_uniq_id(String) — The uniq processor id in pipeline.step_uniq_id(String) — The uniq step id in plan.
Example
Query:
Result:
Here you can see:
ExpressionTransformwas executingsleep(1)function, so itworkwill takes 1e6, and soelapsed_us> 1e6.SourceFromSingleChunkneed to wait, becauseExpressionTransformdoes not accept any data during execution ofsleep(1), so it will be inPortFullstate for 1e6 us, and sooutput_wait_elapsed_us> 1e6.LimitsCheckingTransform/NullSource/LazyOutputFormatneed to wait untilExpressionTransformwill executesleep(1)to process the result, soinput_wait_elapsed_us> 1e6.