query_plan_aggregation_bucket_top_k
LIMIT n과 함께 ORDER BY로 정렬되고 계획에서 버킷별 선택이 정확하다는 것을 증명할 수 있는 경우, 집계의 최종 변환 과정에서 각 2단계 버킷의 상위 n개 그룹만 해당 순서로 구체화하는 쿼리 계획 수준 최적화를 전환합니다. 결과는 정확합니다. 자체 버킷의 상위 n개 그룹에 속하지 않는 그룹은 전역적으로 적어도 n개의 그룹보다 뒤에 있으므로 전역 상위 n개에 포함될 수 없습니다.
설정 query_plan_enable_optimizations이 1인 경우에만 적용됩니다.
가능한 값:
- 0 - 비활성화
- 1 - 활성화
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 JOINs)에서는 잘못된 결과가 발생할 수 있습니다.
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일 때만 적용됩니다.
이 설정은 개발자가 디버깅 용도로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 0 - 비활성화
- 1 - 활성화
query_plan_filter_push_down
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 0 - 비활성화
- 1 - 활성화
query_plan_fuse_filter_into_array_join
ARRAY JOIN된 원소 컬럼에 대한 필터를 ARRAY JOIN 단계에 통합하는 쿼리 계획 수준의 최적화를 전환합니다. 확장하기 전에 원소 단위로 배열을 필터링하므로, 필터링으로 제외된 원소는 확장되거나 복제되지 않습니다.
설정 query_plan_enable_optimizations이 1인 경우에만 적용됩니다.
개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
JOIN ON 절에서 ALL JOIN 엄격성에 대해서만 지원됩니다. 가능한 값은 다음과 같습니다.
- ‘auto’: 플래너가 어떤 테이블을 빌드 테이블로 사용할지 결정합니다.
- ‘false’: 테이블을 스왑하지 않습니다(오른쪽 테이블이 빌드 테이블입니다).
- ‘true’: 항상 테이블을 스왑합니다(왼쪽 테이블이 빌드 테이블입니다).
query_plan_lift_up_array_join
이 설정은 개발자가 디버깅 용도로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 0 - 비활성화
- 1 - 활성화
query_plan_lift_up_union
query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
이 설정은 개발자가 debugging 용도로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 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을 포함하는 노드에서는 projection match가 절대 성공하지 않습니다.
aggregate projection matcher(및 IN 절 Set 비교가 필요한 향후 projection matcher)에서 사용됩니다. 콘텐츠 해시 계산은 Set 원소 수에 대해 O(N log N) 복잡도를 가지며, 이 설정은 쿼리나 projection에 IN 절이 많이 포함된 경우 계획 수립 중 발생하는 비용을 제한합니다.
query_plan_max_step_description_length
query_plan_merge_expression_into_join
query_plan_merge_expressions
이 설정은 개발자가 debugging할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 이전 버전과 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 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’ - 기본 탐욕 알고리즘으로, 빠르게 동작하지만 최적의 조인 순서를 찾지 못할 수 있습니다
- ‘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
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
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_lazy_materialization_for_file
file 테이블 함수 및 File 테이블 엔진을 사용해 로컬 Parquet 파일을 읽을 때 지연 머티리얼라이즈 최적화를 적용합니다. ORDER BY ... LIMIT n 쿼리에서는 정렬 및 필터링에 필요하지 않은 컬럼을 LIMIT를 통과한 n개 행에 대해서만 읽습니다. 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_down_volume_reducing_functions
length, lengthUTF8, empty, notEmpty)를 실행 계획에서
Sorting 및 Filter 단계 아래로 이동하는 쿼리 계획 수준 최적화를 켜거나 끕니다. 고정 크기 결과가
wide String / FixedString 인수를 대체하므로 해당 인수는 더 이상 이 단계를 거치지 않습니다.
이 재작성은 인수 컬럼이 푸시다운되는 단계 위에서 필요하지 않은 경우에만 적용됩니다.
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
query_plan_enable_optimizations이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 0 - 비활성화
- 1 - 활성화
query_plan_read_in_order_through_join
query_plan_remove_redundant_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
이 설정은 개발자가 디버깅할 때만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 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 아래로 푸시하는 쿼리 계획 수준 최적화를 켜거나 끕니다. 이 최적화는 조인 전에 보존되는 쪽 입력이 생성해야 하는 행 수를 제한합니다.
이 설정은 query_plan_enable_optimizations 값이 1일 때만 적용됩니다.
가능한 값:
- 0 - 비활성화
- 1 - 활성화
query_plan_try_use_vector_search
query_plan_enable_optimizations 설정이 1일 때만 적용됩니다.
이 설정은 개발자가 디버깅 목적으로만 사용해야 하는 전문가 수준의 설정입니다. 이 설정은 향후 하위 호환되지 않는 방식으로 변경되거나 제거될 수 있습니다.
- 0 - 비활성화
- 1 - 활성화