これらの設定は system.settings で確認でき、ソースコード から自動生成されています。
max_memory_usage
Cloud でのデフォルト値: レプリカ上の RAM の量によって異なります。
1 台のサーバーでクエリを実行する際に使用される RAM の最大量です。
値が 0 の場合は無制限を意味します。
この設定では、利用可能なメモリ量やマシン全体の総メモリ量は考慮されません。 この制限は、1 台のサーバー内の 1 つのクエリに適用されます。
SHOW PROCESSLIST を使用すると、各クエリの現在のメモリ消費量を確認できます。
ピーク時のメモリ消費量は各クエリごとに追跡され、ログに書き込まれます。
String および Array 引数を持つ以下の aggregate functions の集約状態については、
メモリ使用量は完全には追跡されません。
minmaxanyanyLastargMinargMax
メモリ消費量は、max_memory_usage_for_user
および max_server_memory_usage の
parameter によっても制限されます。
max_memory_usage_for_user
単一のサーバー上で、あるユーザーのクエリ実行に使用できるRAMの最大量です。0 は無制限を意味します。
デフォルトでは、この値に制限はありません (max_memory_usage_for_user = 0) 。
max_memory_usage の説明もあわせて参照してください。
たとえば、clickhouse_read という名前のユーザーに対して max_memory_usage_for_user を 1000 バイトに設定するには、次のステートメントを使用できます
ALTER USER clickhouse_read SETTINGS max_memory_usage_for_user = 1000;クライアントからログアウトして再度ログインし、getSetting 関数を使用すると、正しく反映されたことを確認できます。
SELECT getSetting('max_memory_usage_for_user');