> ## 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.

# optimize_skip_* 세션 설정

> optimize_skip_*로 생성된 그룹의 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>;
};

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

<div id="optimize_skip_merged_partitions">
  ## optimize\_skip\_merged\_partitions
</div>

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

level > 0인 파트가 하나만 있고 만료된 TTL이 없는 경우, [OPTIMIZE TABLE ... FINAL](/docs/ko/reference/statements/optimize) 쿼리에 대한 최적화를 활성화하거나 비활성화합니다.

* `OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1`

기본적으로 `OPTIMIZE TABLE ... FINAL` 쿼리는 파트가 하나만 있는 경우에도 해당 파트를 재작성합니다.

가능한 값:

* 1 - 최적화를 활성화합니다.
* 0 - 최적화를 비활성화합니다.

<div id="optimize_skip_unused_shards">
  ## optimize\_skip\_unused\_shards
</div>

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

`WHERE/PREWHERE`에 세그먼트 분할 키 조건이 있는 [SELECT](/docs/ko/reference/statements/select/index) 쿼리에서 사용되지 않는 세그먼트를 건너뛸지 여부를 설정하며, 분산 쿼리와 관련된 최적화(예: 세그먼트 분할 키 기준 집계)도 활성화합니다.

<Note>
  데이터가 세그먼트 분할 키를 기준으로 분산되어 있다고 가정합니다. 그렇지 않으면 쿼리 결과가 올바르지 않을 수 있습니다.
</Note>

가능한 값:

* 0 — 비활성화됨.
* 1 — 활성화됨.

<div id="optimize_skip_unused_shards_limit">
  ## optimize\_skip\_unused\_shards\_limit
</div>

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

세그먼트 분할 키 값의 개수 제한입니다. 이 한도에 도달하면 `optimize_skip_unused_shards`가 비활성화됩니다.

값이 너무 많으면 처리에 상당한 리소스가 필요할 수 있으며, `IN (...)`에 값이 매우 많다면 어차피 쿼리가 모든 세그먼트로 전송될 가능성이 높아 이점도 크지 않습니다.

<div id="optimize_skip_unused_shards_nesting">
  ## optimize\_skip\_unused\_shards\_nesting
</div>

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

분산 쿼리의 중첩 수준에 따라 [`optimize_skip_unused_shards`](/docs/ko/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards)의 동작을 제어합니다(따라서 이 설정을 사용하려면 여전히 [`optimize_skip_unused_shards`](/docs/ko/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards)가 필요합니다). 이는 `Distributed` 테이블이 다른 `Distributed` 테이블을 조회하는 경우에 해당합니다.

가능한 값:

* 0 — 비활성화됩니다. `optimize_skip_unused_shards`는 항상 동작합니다.
* 1 — 첫 번째 수준에서만 `optimize_skip_unused_shards`를 활성화합니다.
* 2 — 두 번째 수준까지 `optimize_skip_unused_shards`를 활성화합니다.

<div id="optimize_skip_unused_shards_rewrite_in">
  ## optimize\_skip\_unused\_shards\_rewrite\_in
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

원격 세그먼트용 쿼리에서 IN을 재작성해 해당 세그먼트에 속하지 않는 값을 제외합니다(`optimize_skip_unused_shards`가 필요합니다).

가능한 값:

* 0 — 비활성화됩니다.
* 1 — 활성화됩니다.
