> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Системная таблица с данными профилирования на уровне отдельных процессоров (их можно найти в `EXPLAIN PIPELINE`)

# system.processors_profile_log

<Info>
  **Запросы в ClickHouse Cloud**

  Данные в этой системной таблице хранятся локально на каждом узле ClickHouse Cloud. Поэтому, чтобы получить полное представление обо всех данных, требуется функция `clusterAllReplicas`. Дополнительные сведения см. [здесь](/ru/reference/system-tables/overview#system-tables-in-clickhouse-cloud).
</Info>

<div id="description">
  ## Описание
</div>

Эта таблица содержит данные профилирования на уровне процессоров, которые можно найти в [`EXPLAIN PIPELINE`](/ru/reference/statements/explain#explain-pipeline).

<div id="columns">
  ## Столбцы
</div>

* `hostname` ([LowCardinality(String)](/ru/reference/data-types/lowcardinality)) — Имя хоста сервера, выполняющего запрос.
* `event_date` ([Date](/ru/reference/data-types/date)) — Дата, когда произошло событие.
* `event_time` ([DateTime](/ru/reference/data-types/datetime)) — Дата и время, когда произошло событие.
* `event_time_microseconds` ([DateTime64(6)](/ru/reference/data-types/datetime64)) — Дата и время события с точностью до микросекунд.
* `id` ([UInt64](/ru/reference/data-types/int-uint)) — ID процессора.
* `parent_ids` ([Array(UInt64)](/ru/reference/data-types/array)) — ID родительских процессоров.
* `plan_step` ([UInt64](/ru/reference/data-types/int-uint)) — ID шага плана запроса, создавшего этот процессор. Значение равно нулю, если процессор не был добавлен ни одним шагом.
* `plan_step_name` ([String](/ru/reference/data-types/string)) — Имя шага плана запроса, создавшего этот процессор. Значение пусто, если процессор не был добавлен ни одним шагом.
* `plan_step_description` ([String](/ru/reference/data-types/string)) — Описание шага плана запроса, создавшего этот процессор. Значение пусто, если процессор не был добавлен ни одним шагом.
* `plan_group` ([UInt64](/ru/reference/data-types/int-uint)) — Группа процессора, если он был создан шагом плана запроса. Группа — это логическое разделение процессоров, добавленных одним и тем же шагом плана запроса. Группа используется только для более наглядного отображения результата EXPLAIN PIPELINE.
* `initial_query_id` ([String](/ru/reference/data-types/string)) — ID исходного запроса (для выполнения распределённого запроса).
* `query_id` ([String](/ru/reference/data-types/string)) — ID запроса.
* `name` ([LowCardinality(String)](/ru/reference/data-types/lowcardinality)) — Имя процессора.
* `elapsed_us` ([UInt64](/ru/reference/data-types/int-uint)) — Количество микросекунд, в течение которых выполнялся этот процессор.
* `input_wait_elapsed_us` ([UInt64](/ru/reference/data-types/int-uint)) — Количество микросекунд, в течение которых этот процессор ожидал поступления данных (от другого процессора).
* `output_wait_elapsed_us` ([UInt64](/ru/reference/data-types/int-uint)) — Количество микросекунд, в течение которых этот процессор ожидал, поскольку выходной порт был заполнен.
* `input_rows` ([UInt64](/ru/reference/data-types/int-uint)) — Количество строк, обработанных процессором.
* `input_bytes` ([UInt64](/ru/reference/data-types/int-uint)) — Количество байтов, обработанных процессором.
* `output_rows` ([UInt64](/ru/reference/data-types/int-uint)) — Количество строк, сгенерированных процессором.
* `output_bytes` ([UInt64](/ru/reference/data-types/int-uint)) — Количество байтов, сгенерированных процессором.
* `processor_uniq_id` ([String](/ru/reference/data-types/string)) — Уникальный ID процессора в конвейере.
* `step_uniq_id` ([String](/ru/reference/data-types/string)) — Уникальный ID шага в плане.

<div id="example">
  ## Пример
</div>

```sql title="Query" theme={null}
EXPLAIN PIPELINE
SELECT sleep(1)
┌─explain─────────────────────────┐
│ (Expression)                    │
│ ExpressionTransform             │
│   (SettingQuotaAndLimits)       │
│     (ReadFromStorage)           │
│     SourceFromSingleChunk 0 → 1 │
└─────────────────────────────────┘

SELECT sleep(1)
SETTINGS log_processors_profiles = 1
Query id: feb5ed16-1c24-4227-aa54-78c02b3b27d4
┌─sleep(1)─┐
│        0 │
└──────────┘
1 rows in set. Elapsed: 1.018 sec.

SELECT
    name,
    elapsed_us,
    input_wait_elapsed_us,
    output_wait_elapsed_us
FROM system.processors_profile_log
WHERE query_id = 'feb5ed16-1c24-4227-aa54-78c02b3b27d4'
ORDER BY name ASC
```

```text title="Response" theme={null}
┌─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 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘
```

Здесь можно увидеть следующее:

* `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.

<div id="see-also">
  ## См. также
</div>

* [`EXPLAIN PIPELINE`](/ru/reference/statements/explain#explain-pipeline)
