Pular para o conteúdo principal
Consultas no ClickHouse CloudOs dados nesta tabela de sistema são mantidos localmente em cada nó do ClickHouse Cloud. Portanto, para obter uma visão completa de todos os dados, é necessário usar a função clusterAllReplicas. Consulte aqui para mais detalhes.

Descrição

Esta tabela contém informações de profiling no nível dos processadores (que você pode encontrar em EXPLAIN PIPELINE).

Colunas

  • hostname (LowCardinality(String)) — Hostname do servidor que executa a consulta.
  • event_date (Date) — A data em que o evento aconteceu.
  • event_time (DateTime) — A data e a hora em que o evento aconteceu.
  • event_time_microseconds (DateTime64(6)) — A data e a hora, com precisão de microssegundos, em que o evento aconteceu.
  • id (UInt64) — ID do processador.
  • parent_ids (Array(UInt64)) — IDs dos processadores pais.
  • plan_step (UInt64) — ID do passo do plano de consulta que criou este processador. O valor é zero se o processador não foi adicionado a partir de nenhum passo.
  • plan_step_name (String) — Nome do passo do plano de consulta que criou este processador. O valor fica vazio se o processador não foi adicionado a partir de nenhum passo.
  • plan_step_description (String) — Descrição do passo do plano de consulta que criou este processador. O valor fica vazio se o processador não foi adicionado a partir de nenhum passo.
  • plan_group (UInt64) — Grupo do processador, se ele foi criado por um passo do plano de consulta. Um grupo é um particionamento lógico de processadores adicionados a partir do mesmo passo do plano de consulta. O grupo é usado apenas para melhorar a apresentação do resultado de EXPLAIN PIPELINE.
  • initial_query_id (String) — ID da consulta inicial (para execução distribuída de consultas).
  • query_id (String) — ID da consulta.
  • name (LowCardinality(String)) — Nome do processador.
  • elapsed_us (UInt64) — Número de microssegundos durante os quais este processador foi executado.
  • input_wait_elapsed_us (UInt64) — Número de microssegundos durante os quais este processador ficou esperando por dados (de outro processador).
  • output_wait_elapsed_us (UInt64) — Número de microssegundos durante os quais este processador ficou esperando porque a porta de saída estava cheia.
  • input_rows (UInt64) — O número de linhas consumidas pelo processador.
  • input_bytes (UInt64) — O número de bytes consumidos pelo processador.
  • output_rows (UInt64) — O número de linhas geradas pelo processador.
  • output_bytes (UInt64) — O número de bytes gerados pelo processador.
  • processor_uniq_id (String) — O ID único do processador no pipeline.
  • step_uniq_id (String) — O ID único do passo no plano.

Exemplo

Query
EXPLAIN PIPELINE
SELECT sleep(1)
┌─explain─────────────────────────┐
│ (Expression)                    │
│ ExpressionTransform             │
│   (SettingQuotaAndLimits)       │
│     (ReadFromStorage)           │
│     SourceFromSingleChunk 01
└─────────────────────────────────┘

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
Response
┌─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 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘
Aqui você pode ver:
  • ExpressionTransform estava executando a função sleep(1), então seu work levará 1e6 e, portanto, elapsed_us > 1e6.
  • SourceFromSingleChunk precisa esperar, porque ExpressionTransform não aceita nenhum dado durante a execução de sleep(1), então ficará no estado PortFull por 1e6 us e, portanto, output_wait_elapsed_us > 1e6.
  • LimitsCheckingTransform/NullSource/LazyOutputFormat precisam esperar até que ExpressionTransform execute sleep(1) para processar o resultado, então input_wait_elapsed_us > 1e6.

Veja também

Última modificação em 10 de junho de 2026