본문 바로가기

PostgreSQL

24. PostgreSQL - Temporary Files

Temporary files은 언제 사용하는가?

work_mem의 크기를 넘어서면 temporary file을 사용

temp_buffers의 크기를 넘어서면 temporary file을 사용

 

work_mem이란?

configuration parameter로

sort or hash table과 같은 query operation이 진행될 때 사용할 수 있는 최대 memory 영역을 지정할 때 사용

여러 세션에서 수행되는 query에서 동시에 work_mem의 최대치까지 할당받아 쓸 수 있으므로 총 사용된 메모리양은 work_mem값보다 커질 수 있음.

 

sort 연산

   ORDER BY, DISTINCT, MERGE JOINS

 

hash table

    HASH JOIN, HASH-BASED AGGREGATION, IN절 subquery에서 hash 기반 처리 시 사용

 

temp_buffers란?

configuration parameter로

각 DB 세션마다 temporary buffers에 사용되는 최대 메모리양을 설정.

temporary tables을 access하는 데만 사용되는 session local buffer임.

 

temporary file 생성 위치 및 구조

$PGDATA/base/pg_tmp 하위 디렉토리에 생성됨.

pgsql_tmp + file을 생성한 PID.{몇번째 temport file인지}

 

예시) 8903 pid에서 생성한 5번째 tempoary file

$ ls -la $PGDATA/base/pgsql_tmp*
-rw-------  1 postgres  postgres  10240000 12  4 14:18 pgsql_tmp8903.5

'PostgreSQL' 카테고리의 다른 글

JIT(Just-in-Time Compilation)  (0) 2025.07.07
PREPARE statement  (1) 2025.07.07
23. PostgreSQL - planner의 cost 계산  (1) 2024.12.29
22. PostgreSQL - query processing  (1) 2024.12.29
21.PostgreSQL - WAL(Write Ahead Log)  (4) 2024.12.28