Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

max_execution_* セッション設定

これらの設定は system.settings で確認でき、ソースコード から自動生成されています。

max_execution_speed

UInt64
デフォルト値
0

1 秒あたりの実行行数の上限です。各データブロックで timeout_before_checking_execution_speed の期限が切れるたびにチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。

max_execution_speed_bytes

UInt64
デフォルト値
0

1 秒あたりの実行バイト数の最大値です。各データブロックで timeout_before_checking_execution_speed の期限が切れるたびにチェックされます。実行速度が高すぎる場合は、実行速度が抑制されます。

max_execution_time

Seconds
デフォルト値
0

クエリ実行時間の最大値 (秒) です。

max_execution_time パラメータは、少しわかりにくい場合があります。 これは、現在のクエリ実行速度に対する補間に基づいて動作します (この挙動は timeout_before_checking_execution_speed で制御されます) 。

ClickHouse は、予測される実行時間が指定した max_execution_time を超える場合、クエリを中断します。既定では、timeout_before_checking_execution_speed は 10 秒に設定されています。つまり、クエリ実行開始から 10 秒経過すると、ClickHouse は合計実行時間の推定を開始します。たとえば、max_execution_time を 3600 秒 (1 時間) に設定した場合、推定時間がこの 3600 秒の上限を超えると、ClickHouse は クエリを終了します。timeout_before_checking_execution_speed を 0 に設定すると、ClickHouse は max_execution_time の基準として実際の経過時間を使用します。

クエリの実行時間が指定した秒数を超えた場合の動作は、 既定で throw に設定されている timeout_overflow_mode によって決まります。

max_execution_time_leaf

Seconds
デフォルト値
0

max_execution_time と意味としては似ていますが、 分散クエリまたはリモートクエリのリーフノードにのみ適用されます。

たとえば、リーフノードでの実行時間を 10s に制限しつつ、 初期ノードでは制限を設けたくない場合は、ネストされたサブクエリの設定に max_execution_time を指定する代わりに、次のようにします:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t SETTINGS max_execution_time = 10));

クエリ設定として max_execution_time_leaf を指定できます:

SELECT count()
FROM cluster(cluster, view(SELECT * FROM t)) SETTINGS max_execution_time_leaf = 10;
Navigation