これらの設定は system.settings で利用でき、ソースコード から自動生成されています。
use_top_k_dynamic_filtering
型
Bool
デフォルト値
1
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.5 | 1 | TopKクエリに対する動的フィルタリング最適化をデフォルトで有効化 |
| 25.12 | 0 | 新しい設定 |
ORDER BY <column> LIMIT n クエリの実行時に、動的フィルタリング最適化を有効にします。
有効にすると、クエリエグゼキュータは、結果セットの最終的な top N 行に含まれない granule や行をスキップしようとします。この最適化は動的に動作するため、レイテンシの改善効果はデータ分布や、クエリ内に他のフィルタ条件があるかどうかに依存します。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
use_top_k_dynamic_filtering_for_variable_length_types
型
Bool
デフォルト値
0
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 26.5 | 0 | 可変長のソートカラム(例: `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 — 有効。