query_plan_aggregation_in_order
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは開発者がデバッグ目的でのみ使用すべき、上級者向けの設定です。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_convert_any_join_to_semi_or_anti_join
query_plan_convert_join_to_in
JOIN を IN を使ったサブクエリに変換できるようにします。非 ANY JOIN (たとえばデフォルトの ALL JOIN) では、誤った結果になる可能性があります。
query_plan_convert_outer_join_to_inner_join
JOIN 後のフィルタで常にデフォルト値が除外される場合、OUTER JOIN を INNER JOIN に変換できるようにします
query_plan_direct_read_from_text_index
query_plan_display_internal_aliases
query_plan_enable_multithreading_after_window_functions
query_plan_enable_optimizations
これは上級者向けの設定であり、開発者がデバッグ目的にのみ使用してください。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - クエリプランレベルのすべての最適化を無効にする
- 1 - クエリプランレベルの最適化を有効にする (ただし、個々の最適化はそれぞれの設定によって無効にされる場合があります)
query_plan_execute_functions_after_sorting
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは開発者がDebug目的でのみ使用すべきexpert-level settingです。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_filter_push_down
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
JOIN ON 句を使用する ALL join strictness でのみサポートされています。設定可能な値は次のとおりです。
- ‘auto’: どのテーブルをビルドテーブルとして使用するかをプランナーが決定します。
- ‘false’: テーブルを入れ替えません (右テーブルがビルドテーブルになります) 。
- ‘true’: 常にテーブルを入れ替えます (左テーブルがビルドテーブルになります) 。
query_plan_lift_up_array_join
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用してください。この設定は、将来後方互換性のない形で変更されるか、削除される可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_lift_up_union
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは開発者がデバッグ用途でのみ使用すべき上級者向けの設定です。将来的に後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_max_limit_for_join_lazy_indexing
query_plan_max_limit_for_lazy_materialization
query_plan_max_limit_for_top_k_optimization
query_plan_max_optimizations_to_apply
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
query_plan_max_set_size_for_projection_match
IN 句の Set の最大行数です。これを超える Set は不一致として扱われ、projection はスキップされます。0 を指定すると内容ハッシュ比較は完全に無効化されます。この場合、IN 句の Set を含む node では projection match は決して成功しません。
aggregate projection matcher (および、IN 句の Set を比較する必要がある将来の projection matcher) で使用されます。内容ハッシュの計算量は、Set の elements 数に対して O(N log N) です。この設定は、クエリまたは projection に多数の IN 句が現れる場合に、プランニング時に発生するコストを抑えるためのものです。
query_plan_max_step_description_length
query_plan_merge_expression_into_join
query_plan_merge_expressions
これは、開発者がデバッグ目的でのみ使用すべき高度な設定です。この設定は、将来的に後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_merge_filter_into_join_condition
JOIN 条件にマージし、CROSS JOIN を INNER に変換できるようにします。
query_plan_merge_filters
query_plan_min_columns_for_join_lazy_indexing
query_plan_optimize_count_from_text_index
SELECT count() ... WHERE <text search predicate> に応答できるようにします。
query_plan_direct_read_from_text_index が有効な場合にのみ有効です。
query_plan_optimize_join_order_algorithm
- ‘greedy’ - 基本的な貪欲アルゴリズムです。高速に動作しますが、最適な JOIN 順序にならない場合があります
- ‘dpsize’ - 現時点では INNER JOIN のみに対応する DPsize アルゴリズムを実装します。考えられるすべての JOIN 順序を検討して最適なものを見つけますが、テーブル数や JOIN 条件が多いクエリでは遅くなることがあります。
- ‘dpsub’ - INNER JOIN と INNER JOIN 以外の JOIN の両方に対応する DPsub アルゴリズムを実装します。考えられるすべての JOIN 順序を検討して最適なものを見つけますが、テーブル数や JOIN 条件が多いクエリでは遅くなることがあります。
- ‘dphyp’ - 現時点では INNER JOIN のみに対応する DPhyp (ハイパーグラフ分割による動的計画法) アルゴリズムを実装します。
dpsizeと同じ探索空間を調べますが、連結された部分グラフのペアだけを列挙するため、クロス積を考慮しない代わりに、スパースな JOIN グラフでは中間 JOIN の数を減らせます 複数のアルゴリズムは、たとえばdphyp,greedyのようにカンマ区切りのリストで指定できます。指定した順に試行され、あるアルゴリズムでクエリを処理できない場合 (たとえば OUTER JOIN や非連結なコンポーネントがある場合) は、フォールバックとして次のアルゴリズムが使用されます。
query_plan_optimize_join_order_limit
query_plan_optimize_join_order_max_searched_plans
query_plan_optimize_join_order_algorithm で、JOIN 順序オプティマイザが打ち切って次のアルゴリズムにフォールバックするまでに列挙できる部分プランの最大数です。
これにより、クリークやスターのように探索空間が指数関数的に増大する密な JOIN グラフにおいて、optimization 時間を決定論的に制限できます (実時間には依存しません) 。
制限を無効にするには 0 に設定します。既定の query_plan_optimize_join_order_limit では探索が常にこの上限を十分下回るため、影響はありません。
query_plan_optimize_join_order_randomize
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_lazy_materialization_for_object_storage
ORDER BY ... LIMIT n クエリでは、ソートやフィルタリングに不要なカラムは、LIMIT の結果として残った n 行についてのみ読み取られます。query_plan_optimize_lazy_materialization が有効な場合にのみ有効です。
query_plan_optimize_prewhere
query_plan_push_down_limit
これは、開発者がデバッグ目的でのみ使用すべき上級者向けの設定です。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_push_limit_by_into_sort
ORDER BY ... LIMIT BY クエリに対する クエリプランレベルの最適化 を切り替えます。LIMIT BY のカラムが ORDER BY 句のプレフィックスである場合、各並列ソート済みストリームは、ストリームが 1 つにマージされる前に LIMIT BY を適用します。これにより、最終マージおよび後続のパイプライン段階で処理される行数が減少します。LIMIT BY によって大量の行が破棄されるクエリを高速化します。
この設定は、query_plan_enable_optimizations が 1 の場合にのみ有効です。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_plan_read_in_order
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用すべきです。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_read_in_order_through_join
query_plan_read_in_order_through_spilling_join
query_plan_read_in_order_through_join を、max_bytes_before_external_join または max_bytes_ratio_before_external_join で自動ディスクスピルしきい値が設定されたハッシュ結合にも適用できるようにします。
このような結合が左テーブルの順序を保持すると保証できるのは、一度もスピルしない場合に限られます。スピルすると、行がハッシュによってバケットに分散されるためです。この最適化が適用される場合、結合はメモリ内に保持され、スピルしきい値はトリガーされなくなります。代わりに、自動スピルが設定されていない場合と同様に、右側のテーブルはメモリトラッカーによって制限されます。
0 に設定すると、スピルする可能性がある結合を介して順序どおりの読み取りを伝播しないという保守的な動作を維持します。メモリ制限内に収めるためにスピルに依存しており、そうでなければこの最適化の対象となるクエリは、従来どおり動作します。
結合の保持側に Sort と Limit をプッシュダウンする、JOIN を介した個別の ORDER BY ... LIMIT 最適化は、結合が順序を保持することに依存しないため、この設定にかかわらずスピル可能な結合でも引き続き利用できます。ただし、順序どおりの読み取りが可能な場合は、順序どおりの読み取りが優先されます。そのため、この設定を有効にすると、保持側が要求された順序で行をストリーミングできるスピル可能な結合に対する ORDER BY ... LIMIT では、プッシュダウンされた Sort と Limit ではなく、順序どおりの読み取りプランが使用されます。この切り替えには従来からの条件が適用され、特に query_plan_join_swap_table が明示的に false に設定されている必要があります。デフォルトの auto では、後続の最適化によって結合の左右が入れ替わり、順序どおりの読み取りプランが無効になる可能性があるため、この切り替えは確定せず、そのようなクエリではプッシュダウンされた Sort と Limit が引き続き使用されます。
query_plan_remove_redundant_distinct
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは、開発者がデバッグ目的でのみ使用すべき上級者向けの設定です。この設定は、将来後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効化
- 1 - 有効化
query_plan_remove_redundant_sorting
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用してください。今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_remove_unused_columns
これはエキスパートレベルの設定であり、開発者がデバッグ目的でのみ使用してください。この設定は将来、後方互換性のない形で変更されるか、削除される可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_reuse_storage_ordering_for_window_functions
optimize_read_in_window_order
ウィンドウ関数のソート時にストレージのソート順を利用する、クエリプランレベルの最適化をトグルします。
設定 query_plan_enable_optimizations が 1 の場合にのみ有効です。
これは上級者向けの設定であり、開発者がデバッグ目的でのみ使用してください。この設定は将来、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_short_circuit_constant_false_join
ON 条件が定数 false に畳み込まれる JOIN を短絡評価します。行を生成できない各入力側 (INNER/CROSS/SEMI では両側、LEFT/RIGHT では保持されない側) を空のソースに置き換えることで、結果に寄与しない側を読み取りません。アナライザ (enable_analyzer = 1) および非分散プランに適用されます。
query_plan_split_filter
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用してください。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効
query_plan_text_index_add_hint
query_plan_top_k_through_join
ORDER BY ... LIMIT n を join をまたいでプッシュダウンするクエリプランレベルの最適化を切り替えます。これにより、join 前に保持側の入力で生成される行数が制限されます。
設定 query_plan_enable_optimizations が 1 の場合にのみ有効です。
設定可能な値:
- 0 - 無効
- 1 - 有効
query_plan_try_use_vector_search
query_plan_enable_optimizations が 1 の場合にのみ有効です。
これはエキスパート向けの設定であり、開発者がデバッグ目的でのみ使用することを想定しています。この設定は今後、後方互換性のない形で変更されたり、削除されたりする可能性があります。
- 0 - 無効
- 1 - 有効