본문으로 건너뛰기
enable_partition_pruning

enable_partition_pruning

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

planner가 쿼리 조건에 맞지 않는 partition을 plan에서 제거(partition pruning)할 수 있게 할지 정한다. 기본값은 on이다.

켜져 있으면 planner는 WHERE 절을 partition 경계와 비교해, 조건상 결과가 나올 수 없는 partition을 scan 대상에서 제외한다. planning 시점에 값을 알 수 없는 경우(prepared statement의 파라미터, 서브쿼리 결과 등)를 위해 executor가 실행 중에 partition을 건너뛰는 runtime pruning도 이 파라미터가 함께 통제한다. EXPLAIN에서 scan되는 partition 수가 줄어 있거나 “Subplans Removed” 표시가 있으면 pruning이 동작한 것이다. 참고로 inheritance 기반 파티셔닝의 같은 기능은 constraint_exclusion이 담당한다.

운영 노트: 다른 enable_* 계열처럼 off는 pruning 동작이 의심될 때 EXPLAIN을 비교하는 진단 용도로만 쓴다. partition 수가 많은 환경에서 전역으로 끄면 모든 쿼리가 전체 partition을 scan하게 되어 손해가 크다.

출처: PostgreSQL 18 문서