recursive_worktable_factor
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 15 | 10 | user | string |
| 16 | 10 | user | string |
| 17 | 10 | user | string |
| 18 | 10 | user | string |
| 19 | 10 | user | string |
recursive query(WITH RECURSIVE)의 working table 평균 크기를, 쿼리의 초기 non-recursive term 추정 크기의 몇 배로 볼지 planner에 알려준다. 기본값은 10.0이다.
recursive query는 non-recursive term의 결과로 working table을 채운 뒤, recursive term을 반복 적용하며 working table을 갱신해 나간다. planner는 이 working table을 쿼리의 다른 테이블과 join할 방법을 정해야 하는데, working table의 크기는 실행해 보기 전에는 알 수 없으므로 이 파라미터의 배수로 추정한다.
재귀 한 단계에서 다음 단계로 넘어갈 때 row가 크게 불어나지 않는(fan-out이 낮은) 쿼리 — 최단 경로 탐색이 대표적이다 — 에서는 1.0 같은 작은 값이 더 정확한 추정을 준다. 반대로 그래프 분석처럼 단계마다 결과가 크게 불어나는 쿼리는 기본값보다 큰 값이 도움이 될 수 있다.
출처: PostgreSQL 18 문서