본문으로 건너뛰기

temp_file_limit

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

프로세스 하나가 temp file에 쓸 수 있는 디스크 공간의 최대치를 지정한다. 정렬·hash용 temp file, held cursor의 저장 파일 등이 대상이다. 단위 없이 값을 주면 킬로바이트로 해석하며, 기본값 -1은 무제한이다. superuser와 적절한 SET 권한을 가진 사용자만 바꿀 수 있다.

이 한도는 한 PostgreSQL 프로세스가 어느 시점에 사용 중인 모든 temp file의 총량에 적용된다. 한도를 넘기려는 트랜잭션은 취소된다. 주의할 점은 명시적으로 만든 temporary table이 차지하는 디스크 공간은 이 한도에 포함되지 않는다는 것이다. 쿼리 실행 과정에서 내부적으로 생기는 temp file만 센다.

운영 노트: work_mem을 초과하는 대형 정렬이나 hash가 디스크를 가득 채워 서버 전체를 멈추게 하는 사고를 막는 안전장치다. temp file이 놓이는 파일시스템 용량을 기준으로, 폭주 쿼리 하나가 디스크를 다 먹지 못할 수준의 값을 잡아두면 좋다. temp file 사용량은 pg_stat_databasetemp_byteslog_temp_files 설정으로 관찰할 수 있다.

출처: PostgreSQL 18 문서