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.
См. также
