enable_eager_aggregate
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 19 | on | user | boolean |
query planner가 aggregation 일부를 join보다 먼저 수행하는 eager aggregation을 허용할지 결정한다. PostgreSQL 19(beta)에서 추가된 파라미터로, 기본값은 on이다.
보통 aggregation은 관련 테이블을 모두 join한 뒤에 수행된다. eager aggregation은 join 전에 partial aggregation을 먼저 적용해 join에 들어가는 row 수를 줄이고, join이 모두 끝난 뒤 결과를 finalize한다. join 입력이 크고 group 수가 상대적으로 적은 쿼리에서 join 비용을 크게 줄일 수 있다. partial aggregation이 row 수를 충분히 줄이지 못하는 경우를 거르기 위해 min_eager_agg_group_size가 적용 여부를 판단하는 최소 평균 group 크기를 함께 제한한다.
운영 노트: PostgreSQL 19의 새 최적화이므로, 업그레이드 후 특정 집계 쿼리의 plan이 바뀌어 성능이 나빠졌다면 세션 단위로 off로 두고 전후를 비교해 본다.
출처: PostgreSQL 19 문서