> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# enable_* セッション設定

> enable_* の自動生成グループに含まれる ClickHouse のセッション設定。

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["バージョン", "デフォルト値", "コメント"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        バージョン履歴
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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 <a href="/docs/beta-and-experimental-features#experimental-features" 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>
            実験的な機能です
        </a>;
};

これらの設定は [system.settings](/ja/reference/system-tables/settings) で確認でき、[ソースコード](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

<div id="enable_adaptive_memory_spill_scheduler">
  ## enable\_adaptive\_memory\_spill\_scheduler
</div>

<ExperimentalBadge />

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

トリガープロセッサが、データを外部ストレージへ適応的にスピルします。現時点でサポートされているのは grace join のみです。

<div id="enable_add_distinct_to_in_subqueries">
  ## enable\_add\_distinct\_to\_in\_subqueries
</div>

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

`IN` サブクエリで `DISTINCT` を有効にします。これはトレードオフのある設定です。有効にすると、一意の値だけが送信されるようになるため、分散 `IN` サブクエリで転送される一時テーブルのサイズを大幅に削減でき、分片間のデータ転送を大きく高速化できます。
ただし、この設定を有効にすると、重複排除 (DISTINCT) を実行する必要があるため、各ノードで追加のマージ処理負荷が発生します。ネットワーク転送がボトルネックになっており、追加のマージコストを許容できる場合にこの設定を使用してください。

<div id="enable_automatic_decision_for_merging_across_partitions_for_final">
  ## enable\_automatic\_decision\_for\_merging\_across\_partitions\_for\_final
</div>

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

有効にすると、パーティションキー式が決定論的であり、かつその式で使用されるすべてのカラムが主キーに含まれている場合、ClickHouse はこの最適化を自動的に有効にします。
この自動判定により、同じ主キー値を持つ行は常に同じパーティションに属することが保証されるため、パーティションをまたぐマージを回避しても安全です。

<div id="enable_early_constant_folding">
  ## enable\_early\_constant\_folding
</div>

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

関数やサブクエリの結果を解析し、定数が含まれている場合にクエリを書き換えるクエリ最適化を有効にします

<div id="enable_extended_results_for_datetime_functions">
  ## enable\_extended\_results\_for\_datetime\_functions
</div>

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

拡張範囲を持つ `Date32` 型 (`Date` 型と比較) または拡張範囲を持つ `DateTime64` 型 (`DateTime` 型と比較) の結果を返すかどうかを有効または無効にします。

設定可能な値:

* `0` — 関数は、すべての型の引数に対して `Date` または `DateTime` を返します。
* `1` — 関数は、`Date32` または `DateTime64` 型の引数に対しては `Date32` または `DateTime64` を返し、それ以外の場合は `Date` または `DateTime` を返します。

以下のテーブルは、さまざまな日付/時刻関数に対するこの設定の動作を示しています。

| 関数                        | `enable_extended_results_for_datetime_functions = 0`           | `enable_extended_results_for_datetime_functions = 1`                                                                 |
| ------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `toStartOfYear`           | 戻り値は `Date` または `DateTime`                                     | `Date`/`DateTime` 型の入力には `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力には `Date32`/`DateTime64` を返します       |
| `toStartOfISOYear`        | 戻り値は `Date` または `DateTime`                                     | 入力が `Date`/`DateTime` の場合は `Date`/`DateTime` を返します<br />入力が `Date32`/`DateTime64` の場合は `Date32`/`DateTime64` を返します   |
| `toStartOfQuarter`        | `Date` または `DateTime` を返す                                      | `Date`/`DateTime` の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` の入力に対しては `Date32`/`DateTime64` を返します   |
| `toStartOfMonth`          | `Date` または `DateTime` を返します                                    | `Date`/`DateTime` 型の入力には `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力には `Date32`/`DateTime64` を返します       |
| `toStartOfWeek`           | `Date` または `DateTime` を返します                                    | `Date`/`DateTime` 入力の場合は `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `Date32`/`DateTime64` を返します       |
| `toLastDayOfWeek`         | `Date` または `DateTime` を返します                                    | `Date`/`DateTime` 入力の場合は `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `Date32`/`DateTime64` を返します       |
| `toLastDayOfMonth`        | `Date` または `DateTime` を返します                                    | `Date`/`DateTime` 入力の場合は `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `Date32`/`DateTime64` を返します       |
| `toMonday`                | `Date` または `DateTime` を返します                                    | `Date`/`DateTime` 型の入力に対しては `Date`/`DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `Date32`/`DateTime64` を返します |
| `toStartOfDay`            | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しくない結果になる場合があります* | `Date`/`DateTime` 入力の場合は `DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `DateTime64` を返します                       |
| `toStartOfHour`           | 戻り値は `DateTime`<br />*注: 1970～2149 の範囲外の値では誤った結果を返します*         | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |
| `toStartOfFifteenMinutes` | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では誤った結果が返されます*       | `Date`/`DateTime` 入力の場合は `DateTime` を返します<br />`Date32`/`DateTime64` 入力の場合は `DateTime64` を返します                       |
| `toStartOfTenMinutes`     | 戻り値は `DateTime`<br />*注: 1970〜2149 の範囲外の値では正しい結果が得られません*       | `Date`/`DateTime` 型の入力には `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力には `DateTime64` を返します                       |
| `toStartOfFiveMinutes`    | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しい結果が得られません*      | 入力が `Date`/`DateTime` の場合は `DateTime` を返します<br />入力が `Date32`/`DateTime64` の場合は `DateTime64` を返します                   |
| `toStartOfMinute`         | `DateTime` を返します<br />*注: 1970～2149 の範囲外の値では正しい結果が得られません*      | `Date`/`DateTime` 型の入力では `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力では `DateTime64` を返します                       |
| `timeSlot`                | 戻り値は `DateTime`<br />*注: 1970〜2149 の範囲外の値では正しい結果が得られません*       | `Date`/`DateTime` 型の入力に対しては `DateTime` を返します<br />`Date32`/`DateTime64` 型の入力に対しては `DateTime64` を返します                 |

<div id="enable_full_text_index">
  ## enable\_full\_text\_index
</div>

**別名**: `allow_experimental_full_text_index`

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

true に設定すると、テキスト索引を使用できます。

<div id="enable_global_with_statement">
  ## enable\_global\_with\_statement
</div>

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

WITH ステートメントを UNION クエリおよびすべてのサブクエリに伝播します

<div id="enable_hdfs_pread">
  ## enable\_hdfs\_pread
</div>

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

HDFS ファイルでの `pread` の使用を有効または無効にします。デフォルトでは `hdfsPread` が使用されます。無効にすると、HDFS ファイルの読み取りには `hdfsRead` と `hdfsSeek` が使用されます。

<div id="enable_http_compression">
  ## enable\_http\_compression
</div>

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

HTTPリクエストに対するレスポンスでのデータ圧縮を有効または無効にします。

詳細については、[HTTPインターフェイスの説明](/ja/concepts/features/interfaces/http)を参照してください。

設定可能な値:

* 0 — 無効。
* 1 — 有効。

<div id="enable_identifier_resolve_cache">
  ## enable\_identifier\_resolve\_cache
</div>

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

クエリ アナライザで識別子解決 cache を有効にします。この cache は、同じエイリアスが複数回参照されたときに AST が肥大化するのを防ぐため、解決済みのエイリアスノードを共有します。誤った結果が疑われる場合は、false に設定して cache を無効にします。

<div id="enable_job_stack_trace">
  ## enable\_job\_stack\_trace
</div>

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

ジョブの実行結果が例外になった場合に、ジョブ作成元のスタックトレースを出力します。パフォーマンスのオーバーヘッドを避けるため、デフォルトでは無効です。

<div id="enable_lazy_columns_replication">
  ## enable\_lazy\_columns\_replication
</div>

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

JOIN および ARRAY JOIN でのカラムの遅延複製を有効にします。これにより、同じ行をメモリ上で何度も不必要にコピーするのを防げます。

<div id="enable_materialized_cte">
  ## enable\_materialized\_cte
</div>

<ExperimentalBadge />

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

マテリアライズド共通テーブル式を有効にします。enable\_global\_with\_statement よりも優先されます。

<div id="enable_memory_bound_merging_of_aggregation_results">
  ## enable\_memory\_bound\_merging\_of\_aggregation\_results
</div>

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

集約に対するメモリ制約付きのマージ戦略を有効にします。

<div id="enable_multiple_prewhere_read_steps">
  ## enable\_multiple\_prewhere\_read\_steps
</div>

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

AND で結合された複数の条件がある場合、より多くの条件を WHERE から PREWHERE に移し、ディスクからの読み取りとフィルタリングを複数段階で実行します

<div id="enable_named_columns_in_function_tuple">
  ## enable\_named\_columns\_in\_function\_tuple
</div>

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

すべての名前が一意で、クォートなしの識別子として扱える場合、tuple() 関数で名前付きタプルを生成します。

<div id="enable_order_by_all">
  ## enable\_order\_by\_all
</div>

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

`ORDER BY ALL` 構文でのソートを有効または無効にします。詳しくは [ORDER BY](/ja/reference/statements/select/order-by) を参照してください。

設定可能な値:

* 0 — ORDER BY ALL を無効にします。
* 1 — ORDER BY ALL を有効にします。

**例**

クエリ:

```sql theme={null}
CREATE TABLE TAB(C1 Int, C2 Int, ALL Int) ENGINE=Memory();

INSERT INTO TAB VALUES (10, 20, 30), (20, 20, 10), (30, 10, 20);

SELECT * FROM TAB ORDER BY ALL; -- returns an error that ALL is ambiguous

SELECT * FROM TAB ORDER BY ALL SETTINGS enable_order_by_all = 0;
```

結果:

```text theme={null}
┌─C1─┬─C2─┬─ALL─┐
│ 20 │ 20 │  10 │
│ 30 │ 10 │  20 │
│ 10 │ 20 │  30 │
└────┴────┴─────┘
```

<div id="enable_parallel_blocks_marshalling">
  ## enable\_parallel\_blocks\_marshalling
</div>

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

分散クエリにのみ影響します。有効にすると、ブロックはイニシエーターへの送信前後に、パイプラインスレッド上でシリアライズ／デシリアライズおよび圧縮／展開されます (つまり、デフォルトより高い並列度で処理されます) 。

<div id="enable_parsing_to_custom_serialization">
  ## enable\_parsing\_to\_custom\_serialization
</div>

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

true の場合、テーブルから取得したシリアライゼーションのヒントに基づいて、カスタムシリアライゼーション (例: スパース) を使用するカラムにデータを直接パースできます。

<div id="enable_producing_buckets_out_of_order_in_aggregation">
  ## enable\_producing\_buckets\_out\_of\_order\_in\_aggregation
</div>

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

メモリ効率の高い集約 (`distributed_aggregation_memory_efficient`を参照) で、バケットを順不同で生成できるようにします。
これにより、集約バケットのサイズに偏りがある場合でも、レプリカは id の小さい重いバケットをまだ処理している間に、id の大きいバケットをイニシエーターへ送信できるため、パフォーマンスが向上することがあります。
欠点として、メモリ使用量が増える可能性があります。

<div id="enable_reads_from_query_cache">
  ## enable\_reads\_from\_query\_cache
</div>

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

有効にすると、`SELECT` クエリの結果が [クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache) から取得されます。

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="enable_s3_requests_logging">
  ## enable\_s3\_requests\_logging
</div>

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

S3 リクエストの非常に詳細なログを有効にします。デバッグ時にのみ使用するのが適切です。

<div id="enable_scalar_subquery_optimization">
  ## enable\_scalar\_subquery\_optimization
</div>

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

true に設定すると、スカラーサブクエリで大きなスカラー値のシリアライズ／デシリアライズを防ぎ、同じサブクエリが複数回実行されるのを回避できる可能性があります。

<div id="enable_scopes_for_with_statement">
  ## enable\_scopes\_for\_with\_statement
</div>

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

無効にすると、親の WITH 句内の宣言は、現在のスコープで宣言された場合と同じスコープとして扱われます。

これはアナライザの互換性設定であり、旧アナライザでは実行できた一部の無効なクエリも実行できるようにするものです。

<div id="enable_sharding_aggregator">
  ## enable\_sharding\_aggregator
</div>

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

グループ化キーをハッシュ化して行をスレッド間に分散し、各スレッドがマージフェーズなしで重複しないキーの部分集合を集約する、分片化された`GROUP BY`最適化を有効にします。

これは、データが均等に分散した高カーディナリティのキーに対して効率的ですが、キー分布に大きな偏りがある場合や、異なるキーがごく少ないクエリでは性能が低下することがあります。

設定可能な値:

* 0 — 分片化集約の最適化は無効です。
* 1 — 分片化集約の最適化は有効です。

<div id="enable_shared_storage_snapshot_in_query">
  ## enable\_shared\_storage\_snapshot\_in\_query
</div>

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

有効にすると、1 つのクエリ内のすべてのサブクエリで、各テーブルについて同じ StorageSnapshot が共有されます。
これにより、同じテーブルに複数回アクセスする場合でも、クエリ全体を通して一貫したデータビューが保証されます。

これは、データパーツの内部整合性が重要となるクエリで必要です。例:

```sql theme={null}
SELECT
    count()
FROM events
WHERE (_part, _part_offset) IN (
    SELECT _part, _part_offset
    FROM events
    WHERE user_id = 42
)
```

この設定がないと、外側のクエリと内側のクエリが異なるデータスナップショットを参照して実行され、不正確な結果になる可能性があります。

<Note>
  この設定を有効にすると、プランニング段階の完了後にスナップショットから不要なデータパーツを削除する最適化が無効になります。
  その結果、長時間実行されるクエリでは、実行中ずっと廃止されたパーツを保持し続ける可能性があり、パーツのクリーンアップが遅れ、ストレージへの負荷が増加します。

  この設定は現在、MergeTree familyのテーブルにのみ適用されます。
</Note>

設定可能な値:

* 0 - 無効
* 1 - 有効

<div id="enable_sharing_sets_for_mutations">
  ## enable\_sharing\_sets\_for\_mutations
</div>

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

同じ mutation 内の異なるタスク間で、IN サブクエリ用に構築された set オブジェクトの共有を許可します。これにより、メモリ使用量と CPU 使用量を削減できます

<div id="enable_streaming_queries">
  ## enable\_streaming\_queries
</div>

<ExperimentalBadge />

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

`SELECT ... FROM t STREAM [CURSOR '{...}']` の継続クエリを許可します。
オフの場合、`STREAM` 修飾子を使用するテーブル式はすべて
プラン構築時に拒否されます。これは streaming-queries
機能全体を制御するゲートであり、追加の機能は
それぞれ独自の設定で制御される場合があります。

<div id="enable_time_time64_type">
  ## enable\_time\_time64\_type
</div>

**別名**: `allow_experimental_time_time64_type`

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

[Time](/ja/reference/data-types/time) および [Time64](/ja/reference/data-types/time64) データ型を作成できるようにします。

<div id="enable_unaligned_array_join">
  ## enable\_unaligned\_array\_join
</div>

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

サイズの異なる複数の配列に対する ARRAY JOIN を許可します。この設定を有効にすると、配列は最も長いものに合わせてリサイズされます。

<div id="enable_url_encoding">
  ## enable\_url\_encoding
</div>

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

[URL](/ja/reference/engines/table-engines/special/url) エンジンテーブルで、URI 内のパスのデコード/エンコードを有効または無効にします。

デフォルトでは無効です。

<div id="enable_vertical_final">
  ## enable\_vertical\_final
</div>

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

有効にすると、FINAL 時の重複した行は、行をマージする代わりに削除済みとしてマークし、後でフィルタリングして除外します

<div id="enable_writes_to_query_cache">
  ## enable\_writes\_to\_query\_cache
</div>

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

有効にすると、`SELECT` クエリの結果が[クエリキャッシュ](/ja/concepts/features/performance/caches/query-cache)に保存されます。

設定可能な値:

* 0 - 無効
* 1 - 有効
