Skip to main content
이러한 설정은 system.settings에서 확인할 수 있으며, 소스 코드를 기반으로 자동 생성됩니다.

query_plan_aggregation_in_order

순서 기반 집계에 대한 쿼리 계획 수준 최적화를 켜거나 끕니다. 설정 query_plan_enable_optimizations의 값이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_convert_any_join_to_semi_or_anti_join

JOIN 이후의 필터가 일치하지 않는 행 또는 일치하는 행에 대해 항상 false로 평가되는 경우 ANY JOIN을 SEMI 또는 ANTI JOIN으로 변환하도록 허용합니다

query_plan_convert_join_to_in

출력 컬럼이 왼쪽 테이블에만 속하는 경우 JOININ이 포함된 서브쿼리로 변환할 수 있도록 합니다. ANY JOIN이 아닌 조인(예: 기본값인 ALL JOINs)에서는 잘못된 결과가 발생할 수 있습니다.

query_plan_convert_outer_join_to_inner_join

JOIN 이후의 필터가 항상 기본값을 걸러내는 경우 OUTER JOININNER JOIN으로 변환하도록 허용합니다

query_plan_direct_read_from_text_index

쿼리 계획에서 역텍스트 인덱스만 사용해 전문 검색 필터링을 수행하도록 허용합니다.

query_plan_display_internal_aliases

원본 쿼리에서 지정한 별칭 대신 EXPLAIN PLAN에 내부 별칭(예: __table1)을 표시합니다.

query_plan_enable_multithreading_after_window_functions

윈도우 함수를 평가한 후 멀티스레딩을 활성화하여 스트림 처리를 병렬로 수행할 수 있도록 합니다

query_plan_enable_optimizations

쿼리 계획 수준에서 쿼리 최적화를 켜거나 끕니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 쿼리 계획 수준의 모든 최적화를 비활성화합니다
  • 1 - 쿼리 계획 수준의 최적화를 활성화합니다(단, 개별 최적화는 각 설정을 통해 비활성화될 수 있습니다)

query_plan_execute_functions_after_sorting

표현식 처리를 정렬 단계 뒤로 옮기는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 용도로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_filter_push_down

실행 계획에서 필터를 더 아래 단계로 내리는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_join_shard_by_pk_ranges

두 테이블 모두에서 JOIN 키에 PRIMARY KEY의 앞부분이 포함되어 있으면 JOIN에 세그먼트 분할을 적용합니다. hash, parallel_hash 및 full_sorting_merge 알고리즘에서 지원됩니다. 일반적으로 쿼리 속도를 높이지는 않지만 메모리 사용량을 줄일 수 있습니다.

query_plan_join_swap_table

쿼리 계획에서 JOIN의 어느 쪽을 빌드 테이블(build table)(해시 조인에서 해시 테이블에 삽입되는 내부 테이블(inner)이라고도 함)로 사용할지 결정합니다. 이 설정은 JOIN ON 절에서 ALL JOIN 엄격성에 대해서만 지원됩니다. 가능한 값은 다음과 같습니다.
  • ‘auto’: 플래너가 어떤 테이블을 빌드 테이블로 사용할지 결정합니다.
  • ‘false’: 테이블을 스왑하지 않습니다(오른쪽 테이블이 빌드 테이블입니다).
  • ‘true’: 항상 테이블을 스왑합니다(왼쪽 테이블이 빌드 테이블입니다).

query_plan_lift_up_array_join

실행 계획에서 ARRAY JOIN을 더 상위로 이동시키는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 용도로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_lift_up_union

추가 최적화를 수행할 수 있도록 쿼리 계획의 더 큰 하위 트리를 union으로 이동하는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 debugging 용도로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_max_limit_for_join_lazy_indexing

JOIN의 지연 인덱싱 최적화에 쿼리 계획을 사용할 수 있는 최대 LIMIT 값을 제어합니다. 0이면 제한이 없습니다.

query_plan_max_limit_for_lazy_materialization

lazy materialization 최적화에 쿼리 계획을 사용할 수 있는 최대 제한값을 제어합니다. 0이면 제한이 없습니다.

query_plan_max_limit_for_top_k_optimization

minmax 스킵 인덱스와 동적 임계값 필터링을 사용하는 TopK 최적화의 쿼리 계획을 평가할 때 허용되는 최대 limit 값을 제어합니다. 0이면 제한이 없습니다.

query_plan_max_optimizations_to_apply

쿼리 계획에 적용할 수 있는 최적화의 총 횟수를 제한합니다. 자세한 내용은 query_plan_enable_optimizations 설정을 참조하십시오. 복잡한 쿼리의 최적화 시간이 과도하게 길어지는 것을 방지하는 데 유용합니다. EXPLAIN PLAN 쿼리에서는 이 한도에 도달하면 최적화 적용을 중단하고 계획을 있는 그대로 반환합니다. 일반적인 쿼리 실행 시 실제 최적화 횟수가 이 설정값을 초과하면 예외가 발생합니다.
이 설정은 개발자가 디버깅할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.

query_plan_max_set_size_for_projection_match

projection matcher가 두 Set이 동일한지 판단할 때 콘텐츠 해시를 계산하고 비교하는 IN 절 Set의 최대 행 수입니다. 이보다 큰 Set은 일치하지 않는 것으로 처리되며 projection을 건너뜁니다. 0으로 설정하면 콘텐츠 해시 비교가 완전히 비활성화됩니다. 즉, IN 절 Set을 포함하는 노드에서는 projection match가 절대 성공하지 않습니다. aggregate projection matcher(및 IN 절 Set 비교가 필요한 향후 projection matcher)에서 사용됩니다. 콘텐츠 해시 계산은 Set 원소 수에 대해 O(N log N) 복잡도를 가지며, 이 설정은 쿼리나 projection에 IN 절이 많이 포함된 경우 계획 수립 중 발생하는 비용을 제한합니다.

query_plan_max_step_description_length

EXPLAIN PLAN의 단계 설명 최대 길이입니다.

query_plan_merge_expression_into_join

JOIN 재정렬 최적화 중 표현식을 JOIN 단계에 머지하도록 허용합니다.

query_plan_merge_expressions

연속된 필터를 병합하는 쿼리 계획 수준 최적화를 켜거나 끕니다. 설정 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 debugging할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 이전 버전과 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_merge_filter_into_join_condition

필터를 JOIN 조건에 머지하고 CROSS JOININNER로 변환할 수 있도록 허용합니다.

query_plan_merge_filters

쿼리 계획에서 필터를 머지할 수 있도록 허용합니다.

query_plan_min_columns_for_join_lazy_indexing

JOIN에서 lazy indexing 최적화를 활성화하는 데 필요한 왼쪽 입력의 payload 컬럼 최소 개수를 제어합니다. 0으로 설정하면 최적화가 비활성화됩니다.

query_plan_optimize_join_order_algorithm

쿼리 계획 최적화 시 시도할 조인 순서 알고리즘을 지정합니다. 사용할 수 있는 알고리즘은 다음과 같습니다.
  • ‘greedy’ - 기본 탐욕 알고리즘으로, 빠르게 동작하지만 최적의 조인 순서를 찾지 못할 수 있습니다
  • ‘dpsize’ - 현재 Inner 조인에만 적용되는 DPsize 알고리즘을 구현합니다. 가능한 모든 조인 순서를 고려해 가장 최적의 순서를 찾지만, 테이블 수와 조인 프레디케이트가 많은 쿼리에서는 느릴 수 있습니다.
  • ‘dpsub’ - Inner 조인과 비-Inner 조인을 모두 지원하는 DPsub 알고리즘을 구현합니다. 가능한 모든 조인 순서를 고려해 가장 최적의 순서를 찾지만, 테이블 수와 조인 프레디케이트가 많은 쿼리에서는 느릴 수 있습니다.
  • ‘dphyp’ - 현재 Inner 조인에만 적용되는 DPhyp(Dynamic Programming via Hypergraph Partitioning) 알고리즘을 구현합니다. dpsize와 동일한 탐색 공간을 탐색하지만 연결된 서브그래프 쌍만 열거하므로, 교차 곱을 고려하지 않는 대신 희소 조인 그래프에서 생성되는 중간 조인이 더 적습니다 여러 알고리즘을 쉼표로 구분된 목록으로 지정할 수 있습니다. 예: dphyp,greedy. 알고리즘은 지정된 순서대로 시도되며, 어떤 알고리즘이 쿼리를 처리할 수 없으면(예: Outer 조인 또는 연결되지 않은 구성 요소 때문) 다음 알고리즘을 폴백으로 사용합니다.

query_plan_optimize_join_order_limit

동일한 subquery 내에서 JOIN 순서를 최적화합니다. 현재는 매우 제한적인 경우에만 지원됩니다. 값은 최적화할 테이블의 최대 개수입니다.

query_plan_optimize_join_order_max_searched_plans

조인 순서 최적화기가 query_plan_optimize_join_order_algorithm의 다음 알고리즘으로 전환하기 전에 탐색할 수 있는 부분 계획의 최대 개수입니다. 이 설정은 검색 공간이 지수적으로 증가하는 클리크(clique) 또는 스타(star) 같은 밀집 조인 그래프에서 최적화 시간을 결정론적으로(실제 경과 시간과 무관하게) 제한합니다. 제한을 비활성화하려면 0으로 설정하십시오. 검색이 항상 이 한도보다 훨씬 낮게 유지되는 기본 query_plan_optimize_join_order_limit에는 영향을 주지 않습니다.

query_plan_optimize_join_order_randomize

0이 아닌 값이면 조인 순서 최적화기는 실제 통계 대신 무작위로 생성한 카디널리티와 NDV를 사용합니다. 1로 설정하면 랜덤 시드가 생성되며, 1보다 큰 값으로 설정하면 해당 값을 시드로 직접 사용합니다. 이 설정은 서로 다른 조인 순서로 인해 발생하는 오류를 찾기 위한 테스트 용도로 사용됩니다.

query_plan_optimize_lazy_final

primary key 집합을 구성하고 이를 인덱스 분석에 활용하여 ReplacingMergeTree에서 FINAL을 사용한 읽기를 최적화합니다.

query_plan_optimize_lazy_materialization

지연 머티리얼라이즈 최적화에 쿼리 계획을 사용합니다.

query_plan_optimize_prewhere

지원되는 스토리지에서 필터를 PREWHERE 표현식으로 푸시다운하도록 허용합니다

query_plan_push_down_limit

실행 계획에서 LIMIT를 더 아래 단계로 내리는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 설정 query_plan_enable_optimizations이 1인 경우에만 적용됩니다.
이 설정은 개발자가 디버깅할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_push_limit_by_into_sort

ORDER BY ... LIMIT BY 쿼리에 대한 쿼리 계획 수준 최적화의 활성화 여부를 제어합니다. LIMIT BY 컬럼이 ORDER BY 절의 접두사인 경우, 각 병렬 정렬 스트림은 하나로 머지되기 전에 LIMIT BY를 적용하므로 최종 머지와 이후 파이프라인 단계에서 처리되는 행 수가 줄어듭니다. LIMIT BY로 많은 비율의 행이 제외되는 쿼리의 속도를 높입니다. 이 설정은 query_plan_enable_optimizations 설정이 1일 때만 적용됩니다. 가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_read_in_order

쿼리 계획 수준에서 read in-order 최적화를 켜거나 끕니다. 설정 query_plan_enable_optimizations이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_read_in_order_through_join

JOIN 작업에서 왼쪽 테이블의 순서를 유지하며 계속 읽고, 이는 후속 단계에서 활용될 수 있습니다.

query_plan_remove_redundant_distinct

불필요한 DISTINCT 단계를 제거하는 쿼리 계획 수준의 최적화를 활성화하거나 비활성화합니다. 설정 query_plan_enable_optimizations의 값이 1일 때만 적용됩니다.
이 설정은 개발자가 debugging 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_remove_redundant_sorting

서브쿼리 등에서 불필요한 정렬 단계를 제거하는 쿼리 계획 수준의 최적화를 제어합니다. 이 설정은 query_plan_enable_optimizations 값이 1인 경우에만 적용됩니다.
이 설정은 개발자가 디버깅할 때만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_remove_unused_columns

쿼리 계획 단계에서 사용되지 않는 컬럼(입력 및 출력 컬럼 모두)을 제거하려는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_reuse_storage_ordering_for_window_functions

별칭: optimize_read_in_window_order 윈도우 함수 정렬 시 스토리지 정렬을 활용하는 쿼리 계획 수준 최적화를 켜거나 끕니다. 설정 query_plan_enable_optimizations이 1인 경우에만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_split_filter

이 설정은 개발자가 디버깅 용도로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
필터를 표현식으로 분할하는 쿼리 계획 수준의 최적화를 켜거나 끕니다. query_plan_enable_optimizations 설정이 1일 때만 적용됩니다. 가능한 값:
  • 0 - 비활성화
  • 1 - 활성화

query_plan_text_index_add_hint

쿼리 계획에서 역텍스트 인덱스를 기반으로 생성된 필터링 힌트(추가 프레디케이트)를 추가할 수 있도록 합니다.

query_plan_top_k_through_join

정렬 키가 조인(LEFT/RIGHT)에서 보존되는 쪽의 컬럼만 참조하는 경우, ORDER BY ... LIMIT n을 join 아래로 푸시하는 쿼리 계획 수준 최적화를 켜거나 끕니다. 이 최적화는 조인 전에 보존되는 쪽 입력이 생성해야 하는 행 수를 제한합니다. 이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다. 가능한 값:
  • 0 - 비활성화
  • 1 - 활성화
벡터 유사도 인덱스 사용을 시도하는 쿼리 계획 수준의 최적화를 켜거나 끕니다. 이 설정은 query_plan_enable_optimizations 설정이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
가능한 값:
  • 0 - 비활성화
  • 1 - 활성화
마지막 수정일 2026년 7월 24일