enable_presorted_aggregate
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 16 | on | user | boolean |
| 17 | on | user | boolean |
| 18 | on | user | boolean |
| 19 | on | user | boolean |
ORDER BY나 DISTINCT가 붙은 aggregate 함수에 대해, 필요한 순서로 미리 정렬된(presorted) 입력을 공급하는 plan을 planner가 만들지 제어한다. 기본값은 on이다.
aggregate 함수에 ORDER BY나 DISTINCT 절이 있으면 executor는 집계 전에 입력을 그 순서에 맞춰야 한다. 이 파라미터가 켜져 있으면 planner는 index scan 등으로 이미 원하는 순서를 만족하는 입력을 aggregate에 넘기는 더 효율적인 plan을 시도한다. 끄면 ORDER BY·DISTINCT aggregate마다 executor가 집계 직전에 명시적 sort를 수행하는 plan만 만든다.
대부분 기본값을 유지하면 된다. planner의 비용 추정이 빗나가 presorted 방식이 오히려 느린 plan으로 이어지는지 확인할 때 세션 단위로 꺼서 실행 계획을 비교하는 진단 용도가 주된 쓰임새다.
출처: PostgreSQL 18 문서