max_bytes_before_external_group_by
GROUP BY 절을 실행할지 여부를 설정합니다.
(외부 메모리에서의 GROUP BY 참조)
가능한 값:
- 단일 GROUP BY 작업에 사용할 수 있는 최대 RAM 용량(바이트)입니다.
0— 외부 메모리에서GROUP BY를 실행하지 않습니다.
GROUP BY 작업 중 메모리 사용량이 이 바이트 단위 임계값을 초과하면
‘외부 집계(external aggregation)’ 모드가 활성화됩니다(중간 데이터를 디스크에 스필).권장 값은 사용 가능한 시스템 메모리의 절반입니다.
max_bytes_before_external_join
join_algorithm이 hash, parallel_hash, default 또는 auto인 경우, 오른쪽 데이터가 이 바이트 수를 초과하면 디스크로 스필할 수 있도록 해시 조인이 자동으로 grace hash join으로 변환됩니다. 0(기본값)으로 설정하면 이 절대 바이트 임계값은 비활성화되지만, max_bytes_ratio_before_external_join(기본값 0.5)을 통해 자동 스필이 계속 발생할 수 있습니다. 자동 스필을 완전히 비활성화하려면 두 값 모두 0으로 설정하십시오. 이 설정을 사용하면 조인을 통한 read in order 최적화는 적용되지 않습니다.
max_bytes_before_external_sort
ORDER BY 절을 외부 메모리를 사용해 실행할지 여부를 설정합니다. ORDER BY 구현 세부 사항을 참조하십시오.
ORDER BY 작업 중 메모리 사용량이 바이트 단위의 이 임계값을 초과하면 “외부 정렬” 모드(중간 데이터를 디스크에 스필)가 활성화됩니다.
가능한 값:
- 단일 ORDER BY 작업에 사용할 수 있는 최대 RAM 용량(바이트)입니다. 권장 값은 사용 가능한 시스템 메모리의 절반입니다.
0— 외부 메모리를 사용하는ORDER BY가 비활성화됩니다.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm에 따라 달라집니다. 알고리즘별 동작(spill, 재파티셔닝, 전환 또는
join_overflow_mode에 따른 throw/break)은 해당 설정을 참조하십시오.
가능한 값:
- 양의 정수
- 0 — 메모리 제어가 비활성화됩니다.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY에 사용할 수 있는 비율입니다. 이 값에 도달하면
집계를 위해 외부 메모리를 사용합니다.
예를 들어 0.6으로 설정하면 실행 시작 시 GROUP BY는 가용 메모리의 60%
(서버/사용자/머지 기준)까지 사용할 수 있으며, 이후에는
외부 집계를 사용하기 시작합니다.
max_bytes_ratio_before_external_join
JOIN에 사용할 수 있는 가용 메모리 비율입니다. 이 값에 도달하면 해시 조인이 grace hash join으로 전환되어 오른쪽 데이터를 디스크로 스필합니다.
예를 들어 0.6으로 설정하면 실행 시작 시 JOIN의 오른쪽 해시 테이블이 가용 메모리(서버/사용자/머지에 할당된 메모리 기준)의 60%까지 사용할 수 있으며, 그 이후부터는 디스크로 스필하기 시작합니다.
max_bytes_before_external_join과 max_bytes_ratio_before_external_join이 모두 설정된 경우 계산된 임계값 중 더 작은 값이 사용됩니다. 비율이 0이면 절대값 설정만 적용됩니다.
join_algorithm이 hash, parallel_hash, default, auto 중 하나이고 임시 데이터 경로가 구성된 경우에만 적용됩니다.
max_bytes_ratio_before_external_sort
ORDER BY에 사용할 수 있는 가용 메모리의 비율입니다. 이 값에 도달하면 외부 정렬이 사용됩니다.
예를 들어 0.6으로 설정하면 실행 시작 시 ORDER BY에서 가용 메모리(서버/사용자/머지 기준)의 60%까지 사용할 수 있고, 그 이후부터는 외부 정렬을 사용하기 시작합니다.
참고로 max_bytes_before_external_sort는 계속 적용되며, 정렬 block이 max_bytes_before_external_sort보다 큰 경우에만 디스크로 스필됩니다.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150
설정으로 두 테이블의 모든 데이터를 읽도록 하는 분산 쿼리는 전체 크기가
200바이트가 되므로 실패합니다. max_bytes_to_read_leaf=150인 쿼리는
리프 노드가 최대 100바이트만 읽으므로 성공합니다.
이 제한은 처리되는 각 데이터 청크에 대해 검사됩니다.
이 설정은
prefer_localhost_replica=1과 함께 사용할 때 안정적이지 않습니다.max_bytes_to_sort
sort_overflow_mode에 따라
결정되며 기본값은 throw입니다.