> ## 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/ja/reference/system-tables/settings) で確認でき、[source](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 のパートが 1 つだけで、かつ有効期限 (TTL) が切れていない場合に、[OPTIMIZE TABLE ... FINAL](/docs/ja/reference/statements/optimize) クエリに対する最適化を有効または無効にします。

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

デフォルトでは、`OPTIMIZE TABLE ... FINAL` クエリは、パートが 1 つしかない場合でもそのパートを再書き込みします。

設定可能な値:

* 1 - 最適化を有効にします。
* 0 - 最適化を無効にします。

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

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

`WHERE/PREWHERE` に分片キー条件を含む [SELECT](/docs/ja/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/ja/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards) を制御します (この設定を使うには、引き続き [`optimize_skip_unused_shards`](/docs/ja/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards) を有効にしておく必要があります) 。これは、ある `Distributed` テーブルが別の `Distributed` テーブルを参照する場合に該当します。

設定可能な値:

* 0 — 無効。`optimize_skip_unused_shards` は常に動作します。
* 1 — `optimize_skip_unused_shards` を第1レベルでのみ有効にします。
* 2 — `optimize_skip_unused_shards` を第2レベルまで有効にします。

<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 — 有効。
