본문으로 건너뛰기
enable_partitionwise_aggregate

enable_partitionwise_aggregate

버전기본값context타입
14offuserboolean
15offuserboolean
16offuserboolean
17offuserboolean
18offuserboolean
19offuserboolean

planner가 partitionwise aggregation, 즉 partitioned table의 grouping·집계를 partition별로 나눠 수행하는 plan을 고려할지 정한다. 기본값은 off다.

GROUP BY 절에 partition key가 모두 포함되면 각 partition에서 집계를 끝까지 수행해 결과를 이어 붙일 수 있고, 그렇지 않으면 partition별 부분 집계(partial aggregation)만 하고 상위에서 마무리한다. 집계가 partition 단위로 쪼개지므로 partition별 인덱스나 병렬 처리와 결합해 큰 테이블의 집계가 빨라질 수 있다.

기본값이 off인 이유는 비용 때문이다. 켜면 plan에 등장하는, work_mem으로 메모리가 제한되는 노드의 수가 scan 대상 partition 수에 비례해 늘어나 쿼리 실행 중 전체 메모리 사용량이 크게 뛸 수 있다. planning 역시 메모리와 CPU를 눈에 띄게 더 쓴다.

운영 노트: 전역으로 켜기보다 partition key 기준 집계가 많은 세션이나 쿼리에서 선별적으로 켜고, EXPLAIN과 메모리 사용량을 확인한 뒤 적용 범위를 정하는 편이 안전하다. partition 수가 수백 개를 넘으면 planning 시간 증가부터 체감된다.

출처: PostgreSQL 18 문서