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 na mesma cadeia 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
EXPLAIN PIPELINE
SELECT sleep(1)
┌┌─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:
ExpressionTransformestava executando a funçãosleep(1), então seuworklevará 1e6 e, portanto,elapsed_us> 1e6.SourceFromSingleChunkprecisa esperar, porqueExpressionTransformnão aceita nenhum dado durante a execução desleep(1), então ficará no estadoPortFullpor 1e6 us e, portanto,output_wait_elapsed_us> 1e6.LimitsCheckingTransform/NullSource/LazyOutputFormatprecisam esperar até queExpressionTransformexecutesleep(1)para processar o resultado, entãoinput_wait_elapsed_us> 1e6.