> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# max_* 세션 설정

> max_* 그룹에 속하는 ClickHouse 세션 설정입니다.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>유형</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>기본값</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          재시작 없이 변경 가능
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            실험 기능입니다. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">자세히 알아보세요.</a></u>
        </div>;
};

이 설정은 [system.settings](/docs/ko/reference/system-tables/settings)에서 확인할 수 있으며, [소스 코드](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp)에서 자동으로 생성됩니다.

<div id="max_analyze_depth">
  ## max\_analyze\_depth
</div>

<SettingsInfoBlock type="UInt64" default_value="5000" />

인터프리터가 수행할 수 있는 최대 분석 횟수입니다.

<div id="max_autoincrement_series">
  ## max\_autoincrement\_series
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "새로운 설정"}]}]} />

`generateSerialID` 함수로 생성할 수 있는 series 수의 한도입니다.

각 series는 Keeper의 node를 나타내므로, 그 수는 최대 수백만 개를 넘지 않도록 유지하는 것이 좋습니다.

<div id="max_backup_bandwidth">
  ## max\_backup\_bandwidth
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

server의 특정 Backup에 대한 초당 최대 읽기 속도(바이트 단위)입니다. 0은 무제한을 의미합니다.

<div id="max_block_size">
  ## max\_block\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="65409" />

ClickHouse에서는 데이터를 블록 단위로 처리하며, 블록은 컬럼 파트의 집합입니다. 단일 블록에 대한 내부 처리 과정은 효율적이지만, 각 블록을 처리할 때마다 무시할 수 없는 비용이 발생합니다.

`max_block_size` 설정은 테이블에서 데이터를 로드할 때 단일 블록에 포함할 권장 최대 행 수를 나타냅니다. 항상 `max_block_size` 크기의 블록을 테이블에서 로드하는 것은 아닙니다. ClickHouse가 더 적은 데이터만 가져오면 된다고 판단하면 더 작은 블록을 처리합니다.

블록 크기는 각 블록 처리 시 발생하는 비용이 두드러지지 않도록 너무 작아서는 안 됩니다. 또한 LIMIT 절이 있는 쿼리가 첫 번째 블록을 처리한 후 빠르게 실행될 수 있도록 너무 커서도 안 됩니다. `max_block_size`를 설정할 때는 여러 스레드에서 많은 컬럼을 추출할 때 메모리를 과도하게 사용하지 않도록 하고, 최소한의 캐시 지역성(cache locality)은 유지하는 것을 목표로 해야 합니다.

<div id="max_columns_to_read">
  ## max\_columns\_to\_read
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

단일 쿼리에서 테이블로부터 읽을 수 있는 최대 컬럼 수입니다.
쿼리가 지정된 수보다 많은 컬럼을 읽어야 하면 예외가
발생합니다.

<Tip>
  이 설정은 지나치게 복잡한 쿼리를 방지하는 데 유용합니다.
</Tip>

`0`은 제한 없음을 의미합니다.

<div id="max_compress_block_size">
  ## max\_compress\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

테이블에 쓰기 위해 압축하기 전에, 압축되지 않은 데이터 블록의 최대 크기입니다. 기본값은 1,048,576(1 MiB)입니다. 더 작은 블록 크기를 지정하면 일반적으로 압축률은 약간 낮아지지만, 캐시 지역성(cache locality) 덕분에 압축 및 압축 해제 속도는 약간 향상되고 메모리 사용량은 줄어듭니다.

<Note>
  이 설정은 전문가 수준의 설정이므로 ClickHouse를 이제 막 시작하는 단계라면 변경하지 않는 것이 좋습니다.
</Note>

압축용 블록(바이트로 구성된 메모리 청크)과 쿼리 처리용 블록(테이블의 행 집합)을 혼동하지 마십시오.

<div id="max_consume_snapshots">
  ## max\_consume\_snapshots
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "새 설정입니다."}]}]} />

증분 읽기에서 소비할 Paimon 스냅샷의 최대 개수입니다. 0은 제한이 없음을 의미합니다.

<div id="max_estimated_execution_time">
  ## max\_estimated\_execution\_time
</div>

<SettingsInfoBlock type="Seconds" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "max_execution_time과 max_estimated_execution_time 분리"}]}]} />

초 단위의 최대 쿼리 예상 실행 시간입니다. [`timeout_before_checking_execution_speed`](/docs/ko/reference/settings/session-settings/other#timeout_before_checking_execution_speed)
만료 시마다 각 데이터 블록에서 확인합니다.

<div id="max_expanded_ast_elements">
  ## max\_expanded\_ast\_elements
</div>

<SettingsInfoBlock type="UInt64" default_value="500000" />

alias 및 애스터리스크 확장 후 노드 수를 기준으로 한 쿼리 구문 트리의 최대 크기입니다.

<div id="max_fetch_partition_retries_count">
  ## max\_fetch\_partition\_retries\_count
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

다른 호스트에서 파티션을 가져올 때의 재시도 횟수입니다.

<div id="max_final_threads">
  ## max\_final\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="auto(N)" />

[FINAL](/docs/ko/reference/statements/select/from#final-modifier) 수정자가 적용된 `SELECT` 쿼리의 데이터 읽기 단계에서 사용할 최대 병렬 스레드 수를 설정합니다.

가능한 값:

* 양의 정수
* 0 또는 1 — 비활성화됩니다. `SELECT` 쿼리는 단일 스레드로 실행됩니다.

<div id="max_http_get_redirects">
  ## max\_http\_get\_redirects
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

허용되는 HTTP GET 리디렉션 홉의 최대 개수입니다. 악의적인 서버가 요청을 예상치 못한 서비스로 리디렉션하지 못하도록 추가적인 보안 장치를 제공합니다.\n\n이는 외부 서버가 다른 주소로 리디렉션했는데, 그 주소가 회사 내부 인프라에 속한 것처럼 보이는 경우를 말합니다. 이때 내부 서버로 HTTP 요청을 보내면 인증을 우회해 내부 네트워크의 내부 API를 요청하거나 Redis 또는 Memcached 같은 다른 서비스에 쿼리를 보낼 수도 있습니다. 내부 인프라(localhost에서 실행 중인 항목 포함)가 없거나 해당 서버를 신뢰할 수 있다면 리디렉션을 허용해도 안전합니다. 다만 URL이 HTTPS 대신 HTTP를 사용한다면 원격 서버뿐 아니라 ISP와 그 사이의 모든 네트워크도 신뢰해야 한다는 점에 유의해야 합니다.

Cloud 기본값: `10`.

<div id="max_limit_for_vector_search_queries">
  ## max\_limit\_for\_vector\_search\_queries
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1000"},{"label": "새로운 설정"}]}]} />

이 설정보다 큰 LIMIT를 사용하는 SELECT 쿼리에는 벡터 유사도 인덱스를 사용할 수 없습니다. 벡터 유사도 인덱스에서 메모리 오버플로우를 방지하는 데 도움이 됩니다.

<div id="max_number_of_partitions_for_independent_aggregation">
  ## max\_number\_of\_partitions\_for\_independent\_aggregation
</div>

<SettingsInfoBlock type="UInt64" default_value="128" />

최적화를 적용할 수 있는 테이블의 최대 파티션 수

<div id="max_os_cpu_wait_time_ratio_to_throw">
  ## max\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "설정 값이 변경되었으며 25.4에 백포트되었습니다"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "새로운 설정"}]}]} />

쿼리를 거부할지 판단할 때 기준이 되는 OS CPU 대기(`OSCPUWaitMicroseconds` 메트릭) 시간과 사용 중(`OSCPUVirtualTimeMicroseconds` 메트릭) 시간 사이의 최대 비율입니다. 확률 계산에는 최소 비율과 최대 비율 사이의 선형 보간을 사용하며, 이 지점에서 확률은 1입니다.

<div id="max_parallel_replicas">
  ## max\_parallel\_replicas
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "기본적으로 최대 1000개의 병렬 레플리카를 사용합니다."}]}]} />

쿼리 실행 시 각 세그먼트에서 사용할 수 있는 최대 레플리카 수입니다.

가능한 값:

* 양의 정수.

**추가 정보**

이 옵션은 사용된 설정에 따라 결과가 달라질 수 있습니다.

<div id="parallel-processing-using-sample-key">
  ### `SAMPLE` 키를 사용한 병렬 처리
</div>

여러 서버에서 쿼리를 병렬로 실행하면 더 빠르게 처리될 수 있습니다. 하지만 다음과 같은 경우에는 쿼리 성능이 저하될 수 있습니다.

* 파티셔닝 키에서 샘플링 키의 위치상 효율적인 범위 스캔이 어렵습니다.
* 테이블에 샘플링 키를 추가하면 다른 컬럼으로 필터링하는 효율이 떨어집니다.
* 샘플링 키가 계산 비용이 큰 표현식입니다.
* 클러스터의 지연 시간 분포에서 꼬리가 길면 더 많은 서버에 쿼리할수록 전체 쿼리 지연 시간이 증가합니다.

<div id="parallel-processing-using-parallel_replicas_custom_keyreferencesettingssession-settingsparallel-replicasparallel_replicas_custom_key">
  ### [parallel\_replicas\_custom\_key](/docs/ko/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key)를 사용한 병렬 처리
</div>

이 설정은 모든 복제된 테이블에 유용합니다.

<div id="max_parsing_threads">
  ## max\_parsing\_threads
</div>

<SettingsInfoBlock type="MaxThreads" default_value="auto(N)" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "0"},{"label": "파일에서 병렬 파싱 시 스레드 수를 제어하는 별도 설정 추가"}]}]} />

병렬 파싱을 지원하는 입력 형식에서 데이터를 파싱하는 데 사용할 수 있는 최대 스레드 수입니다. 기본적으로 자동으로 결정됩니다.

<div id="max_partition_size_to_drop">
  ## max\_partition\_size\_to\_drop
</div>

<SettingsInfoBlock type="UInt64" default_value="50000000000" />

쿼리 시점에 파티션을 삭제할 때 적용되는 제한입니다. 값 `0`은 제한 없이 파티션을 삭제할 수 있음을 의미합니다.

Cloud 기본값: 1 TB.

<Note>
  이 쿼리 설정은 해당 서버 설정을 재정의합니다. [max\_partition\_size\_to\_drop](/docs/ko/reference/settings/server-settings/settings#max_partition_size_to_drop)를 참조하십시오.
</Note>

<div id="max_parts_to_move">
  ## max\_parts\_to\_move
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1000"},{"label": "새로운 설정"}]}]} />

한 번의 쿼리에서 이동할 수 있는 파트 수를 제한합니다. 0은 제한이 없음을 의미합니다.

<div id="max_projection_rows_to_use_projection_index">
  ## max\_projection\_rows\_to\_use\_projection\_index
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1000000"},{"label": "새로운 설정"}]}]} />

프로젝션 인덱스에서 읽을 행 수가 이 임계값보다 작거나 같으면, ClickHouse는 쿼리 실행 중에 프로젝션 인덱스를 사용하려고 시도합니다.

<div id="max_query_size">
  ## max\_query\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="262144" />

SQL parser가 구문 분석하는 쿌리 문자열의 최대 바이트 수입니다.
INSERT 쿼리의 VALUES 절에 있는 데이터는 별도의 stream parser(O(1) RAM 사용)로 처리되므로 이 제한의 영향을 받지 않습니다.

<Note>
  ClickHouse는 쿼리를 구문 분석하기 위해 buffer를 할당해야 하며, 이 buffer 크기는 `max_query_size` 설정으로 결정됩니다. 따라서 이 설정은 쿼리가 실행되기 전에 미리 구성되어 있어야 하므로 `max_query_size`는 SQL 쿼리 내에서 설정할 수 없습니다(예: `SELECT now() SETTINGS max_query_size=10000`).
</Note>

<div id="max_recursive_cte_evaluation_depth">
  ## max\_recursive\_cte\_evaluation\_depth
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1000"},{"label": "재귀 CTE 평가 깊이의 최대 제한"}]}]} />

재귀 CTE 평가 깊이의 최대 제한

<div id="max_replica_delay_for_distributed_queries">
  ## max\_replica\_delay\_for\_distributed\_queries
</div>

<SettingsInfoBlock type="UInt64" default_value="300" />

분산 쿼리에서 지연이 있는 레플리카를 제외합니다. [복제](/docs/ko/reference/engines/table-engines/mergetree-family/replication)를 참조하십시오.

시간을 초 단위로 지정합니다. 레플리카의 지연이 설정한 값보다 크거나 같으면 해당 레플리카는 사용되지 않습니다.

가능한 값:

* 양의 정수.
* 0 — 레플리카 지연을 확인하지 않습니다.

0이 아닌 지연이 있는 레플리카를 사용하지 않으려면 이 매개변수를 1로 설정하십시오.

복제된 테이블을 가리키는 분산 테이블에서 `SELECT`를 수행할 때 사용됩니다.

<div id="max_reverse_dictionary_lookup_cache_size_bytes">
  ## max\_reverse\_dictionary\_lookup\_cache\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="104857600" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "104857600"},{"label": "새 설정입니다. 함수 `dictGetKeys`에서 사용하는 쿼리별 역방향 딕셔너리 조회 캐시의 최대 크기(바이트)입니다. 동일한 쿼리 내에서 딕셔너리를 다시 스캔하지 않도록 캐시에는 각 속성 값별로 직렬화된 키 튜플이 저장됩니다."}]}]} />

함수 `dictGetKeys`에서 사용하는 쿼리별 역방향 딕셔너리 조회 캐시의 최대 크기(바이트)입니다. 동일한 쿼리 내에서 딕셔너리를 다시 스캔하지 않도록 캐시에는 각 속성 값별로 직렬화된 키 튜플이 저장됩니다. 한도에 도달하면 항목은 LRU 방식으로 제거됩니다. 캐시를 비활성화하려면 0으로 설정하십시오.

<div id="max_sessions_for_user">
  ## max\_sessions\_for\_user
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

ClickHouse 서버에서 인증된 사용자 1명당 동시에 사용할 수 있는 최대 session 수입니다.

예시:

```xml theme={null}
<profiles>
    <single_session_profile>
        <max_sessions_for_user>1</max_sessions_for_user>
    </single_session_profile>
    <two_sessions_profile>
        <max_sessions_for_user>2</max_sessions_for_user>
    </two_sessions_profile>
    <unlimited_sessions_profile>
        <max_sessions_for_user>0</max_sessions_for_user>
    </unlimited_sessions_profile>
</profiles>
<users>
    <!-- User Alice can connect to a ClickHouse server no more than once at a time. -->
    <Alice>
        <profile>single_session_user</profile>
    </Alice>
    <!-- User Bob can use 2 simultaneous sessions. -->
    <Bob>
        <profile>two_sessions_profile</profile>
    </Bob>
    <!-- User Charles can use arbitrarily many of simultaneous sessions. -->
    <Charles>
        <profile>unlimited_sessions_profile</profile>
    </Charles>
</users>
```

가능한 값:

* 양의 정수
* `0` - 동시 세션 수가 무제한(기본값)

<div id="max_subquery_depth">
  ## max\_subquery\_depth
</div>

<SettingsInfoBlock type="UInt64" default_value="100" />

쿼리에 지정된 개수를 초과하는 중첩된 서브쿼리가 있으면 예외가 발생합니다.

<Tip>
  이 설정을 사용하면 클러스터 사용자로부터 지나치게 복잡한 쿼리가 작성되는 것을 방지하는 안전 점검 장치로 활용할 수 있습니다.
</Tip>

<div id="max_table_size_to_drop">
  ## max\_table\_size\_to\_drop
</div>

<SettingsInfoBlock type="UInt64" default_value="50000000000" />

쿼리 시점에 테이블을 삭제할 때 적용되는 제한입니다. 값 `0`은 아무런 제한 없이 모든 테이블을 삭제할 수 있음을 의미합니다.

Cloud 기본값: 1 TB.

<Note>
  이 쿼리 설정은 해당 서버 설정 값을 덮어씁니다. 자세한 내용은 [max\_table\_size\_to\_drop](/docs/ko/reference/settings/server-settings/settings#max_table_size_to_drop)를 참조하십시오.
</Note>

<div id="max_untracked_memory">
  ## max\_untracked\_memory
</div>

<SettingsInfoBlock type="UInt64" default_value="4194304" />

작은 메모리 할당 및 해제는 스레드 로컬 변수에 묶여 저장되며, 그 크기(절댓값 기준)가 지정된 값보다 커질 때만 추적되거나 프로파일링됩니다. 이 값이 'memory\_profiler\_step'보다 크면 실제로는 'memory\_profiler\_step'으로 낮춰집니다.

<div id="max_wkb_geometry_elements">
  ## max\_wkb\_geometry\_elements
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1000000"},{"label": "잘못된 데이터로 인해 과도한 메모리 할당이 발생하지 않도록 WKB geometry 파싱의 원소 수를 제한하는 새로운 설정입니다."}]}]} />

`readWKB` 및 관련 함수가 파싱하는 동안 단일 WKB geometry 원소에 허용되는 Point, Ring 또는 다각형의 최대 개수입니다. 이 설정은 잘못된 WKB 데이터로 인한 과도한 메모리 할당을 방지합니다. 하드코딩된 제한값(1억)을 사용하려면 0으로 설정하십시오.
