본문으로 건너뛰기
enable_presorted_aggregate

enable_presorted_aggregate

버전기본값context타입
16onuserboolean
17onuserboolean
18onuserboolean
19onuserboolean

ORDER BYDISTINCT가 붙은 aggregate 함수에 대해, 필요한 순서로 미리 정렬된(presorted) 입력을 공급하는 plan을 planner가 만들지 제어한다. 기본값은 on이다.

aggregate 함수에 ORDER BYDISTINCT 절이 있으면 executor는 집계 전에 입력을 그 순서에 맞춰야 한다. 이 파라미터가 켜져 있으면 planner는 index scan 등으로 이미 원하는 순서를 만족하는 입력을 aggregate에 넘기는 더 효율적인 plan을 시도한다. 끄면 ORDER BY·DISTINCT aggregate마다 executor가 집계 직전에 명시적 sort를 수행하는 plan만 만든다.

대부분 기본값을 유지하면 된다. planner의 비용 추정이 빗나가 presorted 방식이 오히려 느린 plan으로 이어지는지 확인할 때 세션 단위로 꺼서 실행 계획을 비교하는 진단 용도가 주된 쓰임새다.

출처: PostgreSQL 18 문서