system.processors_profile_log
ClickHouse Cloud でのクエリ実行
このシステムテーブルのデータは、ClickHouse Cloud の各ノードにローカルに格納されています。そのため、すべてのデータを包括的に確認するには、clusterAllReplicas 関数を使用する必要があります。詳細についてはこちらを参照してください。
説明
このテーブルには、プロセッサーレベルのプロファイリング情報が含まれます (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。
例
ここでは次のことがわかります:
ExpressionTransformはsleep(1)関数を実行していたため、そのworkに 1e6 us がかかり、その結果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 となります。