説明
このテーブルには、プロセッサレベルのプロファイリング情報が含まれています (EXPLAIN PIPELINEで確認できます) 。
カラム
hostname(LowCardinality(String)) — クエリを実行しているサーバーのホスト名。event_date(Date) — イベントが発生した日付。event_time(DateTime) — イベントが発生した日時。event_time_microseconds(DateTime64(6)) — イベントが発生した日時 (マイクロ秒精度) 。id(UInt64) — プロセッサの ID。parent_ids(Array(UInt64)) — 親プロセッサの ID。plan_step(UInt64) — このプロセッサを作成したクエリプランのステップの ID。どのステップからも追加されていない場合、この値は 0 です。plan_step_name(String) — このプロセッサを作成したクエリプランのステップ名。どのステップからも追加されていない場合、この値は空です。plan_step_description(String) — このプロセッサを作成したクエリプランのステップの説明。どのステップからも追加されていない場合、この値は空です。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) — プロセッサが生成したバイト数。processor_uniq_id(String) — パイプライン内で一意のプロセッサ ID。step_uniq_id(String) — プラン内で一意のステップ ID。
例
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 │
└─────────────────────────┴────────────┴───────────────────────┴────────────────────────┘ここでは、次のことがわかります。
ExpressionTransformはsleep(1)関数を実行しているため、そのworkには 1e6 かかり、したがってelapsed_us> 1e6 になります。SourceFromSingleChunkは待機する必要があります。これは、ExpressionTransformがsleep(1)の実行中はデータを受け付けないためです。そのため、1e6 us の間PortFull状態となり、output_wait_elapsed_us> 1e6 になります。LimitsCheckingTransform/NullSource/LazyOutputFormatは、結果を処理するためにExpressionTransformがsleep(1)を実行し終えるまで待機する必要があるため、input_wait_elapsed_us> 1e6 になります。