DB/PostgreSQL

쿼리 튜닝용 파라미터

박쿠리 2024. 8. 24. 20:19

 

gp_workfile_compress_algorithm=none 

# default 값은 none이며, zlib 일경우에는 pgsql_tmp 
사용시 압축모드로 사용하기 때문에 동시 사용자수가 높을 경우에 적용할 필요가 있음.


statement_mem 

# default 값은 125MB이며, 2GB까지 설정가능하나, 안정적인 측면에서 
1900MB까지 적용 가능
 => 대용량 쿼리일 경우 1900MB까지 높이는 것이 성능 향상
 => OLTP성과 같이 short 쿼리일 경우 32MB으로 낮추는 것이 성능 향상


- random_page_cost

default 값은 1000이며, 인덱스를 사용하기 위해서는 0, 1으로 셋팅하여, Index 
Scan을 유도


- enable_nestloop

default 값은 off 이며, nestloop join이 필요할 경우 on으로 설정


- join_collapse_limit

default 값은 20이며, 조인이 많을 경우 성능 지연 현상 발생, 플랜 생성시
많은 시간이 소요. 쿼리플랜 작성시 파라미터 값을 8 부터 1씩 증가 시키면서 플랜 생성 소요시간이 
갑자기 많이 드는 값을 기준으로 설정하면 대부분 맞음. 쿼리 cost 가 처음으로 낮아 지는 값


- gp_external_max_segs

default 64, 작은 테이블 로딩이 많을 경우 16 또는 32으로 줄임, 작은 
사이즈가 많을 경우 초기 로딩 속도를 줄이기 위함, 대용량 데이터를 적재하기 위해서는 128 또는 
상향으로 늘림.


- gp_connections_per_thread

default 64, Short 쿼리 수행속도를 올리기 위해서는 1로 내림, 
숫자가 낮을수록 마스터노드의 리소스를 더 많이 사용하며, Database 설정보다는 유저별 설정을 
권고


gp_vmem_idle_resource_timeout : : 

default 18초, 세션 레벨에서 메모리 누적으로 발생되어, Out of 
Memory 가 발생되는 경우, 1ms 로 줄임. (세그먼트 노드의 리소스 Free 하기위한 시간

반응형

'DB > PostgreSQL' 카테고리의 다른 글

GPDB 분산키 Randomly vs 특정 컬럼  (0) 2024.09.12
PostgreSQL 로그인 권한 - 연결 실패  (0) 2024.08.31
수동으로 데이터 재분배  (0) 2024.08.06
CPU Skew  (1) 2024.08.06
GPDB -> HDFS -> GPDB 로드  (0) 2024.08.05