system.processors_profile_log
在 ClickHouse Cloud 中进行查询
该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处。
此表包含处理器级别的性能分析信息(可以在 EXPLAIN PIPELINE 中查看)。
Columns:
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) — 处理器生成的字节数。
Example
Query:
结果:
这里可以看到:
ExpressionTransform在执行sleep(1)函数,因此它的work将耗时约 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。
另请参阅