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

# use_top_k_dynamic_filtering_* セッション設定

> use_top_k_dynamic_filtering_* 生成グループの 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) で利用でき、[ソースコード](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

<div id="use_top_k_dynamic_filtering">
  ## use\_top\_k\_dynamic\_filtering
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "TopKクエリに対する動的フィルタリング最適化をデフォルトで有効化"}]}, {"id": "row-2","items": [{"label": "25.12"},{"label": "0"},{"label": "新しい設定"}]}]} />

`ORDER BY <column> LIMIT n` クエリの実行時に、動的フィルタリング最適化を有効にします。

有効にすると、クエリエグゼキュータは、結果セットの最終的な `top N` 行に含まれない granule や行をスキップしようとします。この最適化は動的に動作するため、レイテンシの改善効果はデータ分布や、クエリ内に他のフィルタ条件があるかどうかに依存します。

設定可能な値:

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

<div id="use_top_k_dynamic_filtering_for_variable_length_types">
  ## use\_top\_k\_dynamic\_filtering\_for\_variable\_length\_types
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "0"},{"label": "可変長のソートカラム（例: `String`）に対しては、既定で `use_top_k_dynamic_filtering` を無効にします。従来はこの最適化が無条件に適用されていましたが、その動作は `compatibility` で維持されます。"}]}]} />

ソートカラムが可変長のデータ型 (例: `String`、`Array`、`Map`、可変長要素を含む `Tuple`) の場合に、`use_top_k_dynamic_filtering` を適用できるようにします。

このような型では、動的フィルタが各行に対して行うしきい値比較のコストが、その効果を上回ることがあります。特に、カラムの辞書順での最小値が大半を占める場合 (例: ほとんどが空文字列) や、スキップできる granule が少ない場合に起こります。その場合、動的フィルタはクエリのレイテンシを改善するどころか、かえって悪化させます。

この設定が `0` の場合、動的フィルタリングは、メモリ内で値の最大サイズが固定されているカラム (数値、`Date`、`DateTime`、`FixedString`、`Enum`、それらの型の `Nullable`、それらの型の `Tuple`) に制限されます。`1` に設定すると、動的フィルタリングは可変長の型にも適用されます。

設定可能な値:

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