enable_seqscan
| 버전 | 기본값 | 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의 sequential scan 사용을 켜고 끈다. 기본값은 on이다.
off로 설정해도 sequential scan이 완전히 사라지지는 않는다. 인덱스가 없는 테이블처럼 다른 접근 방법이 없으면 여전히 sequential scan을 쓴다. 실제 동작은 sequential scan의 추정 비용을 크게 부풀려, 다른 방법이 있을 때 planner가 그쪽을 고르도록 유도하는 방식이다.
운영 노트:
enable_* 계열은 전역 튜닝 수단이 아니라 진단 도구다. 특정 쿼리가 인덱스를 타지 않는 이유를 확인할 때 세션에서 SET enable_seqscan = off로 실행 계획 변화를 비교하는 용도로 쓰고, postgresql.conf에서 전역으로 끄는 것은 피한다. 전역으로 끄면 sequential scan이 정답인 쿼리까지 비효율적인 plan으로 밀려난다.출처: PostgreSQL 18 문서