enable_gathermerge
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | on | user | boolean |
| 15 | on | user | boolean |
| 16 | on | user | boolean |
| 17 | on | user | boolean |
| 18 | on | user | boolean |
| 19 | on | user | boolean |
planner가 Gather Merge plan을 후보로 고려할지 정한다. 기본값은 on이다.
parallel query에서 Gather 노드는 parallel worker들이 만든 결과를 도착 순서대로 모으기 때문에 정렬 순서가 보존되지 않는다. Gather Merge는 각 worker가 정렬된 결과를 내놓는다는 전제 아래 이를 merge 방식으로 합쳐, 병렬성을 유지하면서 정렬 순서까지 보존한다. ORDER BY가 있는 쿼리를 병렬로 처리할 때 상위에서 전체를 다시 정렬하는 비용을 아낄 수 있다.
운영 노트: off는 진단 용도다. Gather Merge가 낀 병렬 plan이 의심될 때 세션에서 끄고 Gather + Sort 형태의 plan과 EXPLAIN (ANALYZE)로 비교해 본다.
출처: PostgreSQL 18 문서