본문 바로가기
엑셈 경쟁력/DB 인사이드

DB 인사이드 | PostgreSQL 참고자료 - Configuration File : postgresql.conf

by EXEM 2022. 3. 30.

📌 Ubuntu에서 apt-get(Advanced Packaging Tool)을 사용하여 설치한 PostgreSQL 14 버전 기준으로 정리
     파라미터 명에 노란색 음영처리는 변경 시 재기동필요

 

FILE LOCATIONS

Parameter Default Value Description
data_directory /var/lib/postgresql/14/main Data Directory 경로
external_pid_file /var/run/postgresql/14-main.pid postmaster PID 저장 파일
hba_file /etc/postgresql/14/main/pg_hba.conf hba 설정파일 경로
ident_file /etc/postgresql/14/main/pg_ident.conf ident 설정파일 경로

 


CONNECTIONS AND AUTHENTICATION

Connection Settings

Parameter Default Value Range Description
bonjour off   Bonjour를 통한 서버 광고 활성화
bonjour_name     Bonjour 서비스 이름 설정
listen_addresses localhost   Listen할 host-name 또는 IP주소
* ⇒ 사용 가능한 모든 IP
0.0.0.0 ⇒ IPv4 주소 수신 허용
:: ⇒ IPv6 주소 수신 허용
max_connections 1~262143   최대 동시 연결 수
port 5432 1~65535 서버가 수신하는 TCP Port 설정
superuser_reserved_connections 3 0~262143 Superuser로 예약된 연결 슬롯 수
unix_socket_directories /var/run/postgresql   Unix 도메인 소켓이 생성될 디렉토리
unix_socket_group     Unix 도메인 소켓의 소유 그룹설정
unix_socket_permissions 파라미터와 같이 사용하여 액세서 제어 설정 가능
unix_socket_permissions 0777   Unix 도메인 소켓의 액세스 권한 설정
0777 ⇒ 모든 접속
0770 ⇒ 사용자 및 그룹만 접속(unix_socket_group 참조)
0700 ⇒ 사용자만 접속

 

TCP settings

Parameter Default Value Range Description
client_connection_check_interval 0ms 0~2147483647ms [14버전추가] 쿼리 실행 동안 연결 상태 확인 시간 간격
tcp_keepalives_count 0 0~2147483647 최대 TCP 연결 유지 재전송 수
tcp_keepalives_idle 0s 0~2147483647s Time between issuing TCP keepalives.
tcp_keepalives_interval 0s 0~2147483647s Time between TCP keepalive retransmits.
tcp_user_timeout 0ms 0~2147483647ms TCP User timeout

 

Authentication

Parameter Default Value Range Description
authentication_timeout 60s 1~600s 클라이언트 인증을 완료하는데 허용되는 최대 시간
db_user_namespace off   DB별 사용자 이름 활성화
krb_caseins_users off   Kerberos, GSSAPI 사용자 이름을 대소문자 구분할지 여부
krb_server_keyfile FILE:/etc/postgresql-common/krb5.keytab   Kerberos 서버 키 파일의 위치
password_encryption scram-sha-256 scram-sha-256 md5 [14버전Default변경] 비밀번호 암호화 알고리즘 선택

 

SSL

Parameter Default Value Range Description
ssl on   SSL 연결 활성화
ssl_ca_file     SSL 인증 기관 파일의위치
ssl_cert_file /etc/ssl/certs/ssl-cert-snakeoil.pem   SSL 서버 인증서 파일 위치
ssl_ciphers HIGH:MEDIUM:+3DES:!aNULL   허용된 SSL 암호 목록 설정
ssl_crl_dir     [14버전추가] SSL 인증서 해지 목록 디렉토리 위치
ssl_crl_file     SSL 인증서 해지 목록 파일 위치
ssl_dh_params_file     SSL DH 파라미터 파일 위치
ssl_ecdh_curve prime256v1   ECDH에 사용할 곡선 설정
ssl_key_file /etc/ssl/private/ssl-cert-snakeoil.key   SSL 서버 개인 키 파일 위치
ssl_max_protocol_version   TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 사용할 최대 SSL/TLS 프로토콜 버전 설정
ssl_min_protocol_version TLSv1.2 TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 사용할 최소 SSL/TLS 프로토콜 버전 설정
ssl_passphrase_command     SSL 암호를 가져오는 명령어
ssl_passphrase_command_supports_reload off   서버 reload 동안 ssl_passphrase_command 사용여부
ssl_prefer_server_ciphers on   서버의 SSL 암호 기본 설정을 사용할지 여부

 


RESOURCE USAGE (except WAL)

Memory

Parameter Default Value Range Description
autovacuum_work_mem -1 -1~2147483647kB autovacuum worker에서 사용할 최대 메모리 크기
-1의 경우 maintenance_work_mem 값을 사용
• dead tuple 식별자 수집의 경우 autovacuum은 최대 1GB의 메모리만 사용할 수 있으므로 autovacuum_work_mem을 이 값 이상으로 설정하면 autovacuum이 테이블을 검색하는 동안 수집할 수 있는 dead tuple 수에 영향을 미치지 않습니다.
dynamic_shared_memory_type posix posix, sysv, windows, mmap 사용된 동적 공유 메모리 구현 선택
hash_mem_multiplier 1.0 1~1000.0 Hash Table에 사용할 work_mem의 배수
huge_pages try on, off, try huge page 사용 (Linux, Windows 전용)
huge_page_size 0 0~2147483647kB [14버전추가] huge page 크기
logical_decoding_work_mem 65536 (64MB) 64(1MB)~ 2147483647kB Logical decoding에 사용할 최대 메모리 크기
maintenance_work_mem 65536 (64MB) 1024(1MB)~ 2147493647kB 유지 관리 작업에 사용할 최대 메모리 크기
• VACUUM , CREATE INDEX 및 ALTER TABLE ADD FOREIGN KEY 와 같은 유지 관리 작업에서 사용할 최대 메모리 양을 지정합니다.
• 데이터베이스 세션은 이러한 작업 중 하나만 실행할 수 있으며 설치 시 일반적으로 많은 작업이 동시에 실행되지 않으므로 work_mem보다 이 값을 훨씬 크게 설정하는 것이 안전합니다.
• autovacuum 시 autovacuum_max_workers 만큼의 배수까지 할당될 수 있으므로 설정에 주의가 필요합니다.
min_dynamic_shared_memory 0MB 0~2147483647MB [14버전추가] 시작 시 예약된 동적 공유 메모리 크기
max_prepared_transactions 0 0~252143 동시에 준비된 트랜잭션의 최대 수
max_stack_depth 100kB 100~2147483647kB 최대 stack 깊이(KB)
shared_buffers 1024 (8MB) 16 (128kB)~ 1073741823 (8589934584kB) • 서버에서 사용하는 공유 메모리 버퍼의 수(메모리 양)를 설정합니다.
• 128KB 이상이어야 하며, 일반적으로 좋은 성능을 위해서는 최소값보다는 훨씬 높은 설정이 필요합니다.
• 이 값은 서버 시작시에만 설정할 수 있습니다.
• 1GB 이상의 RAM이 있는 전용 데이터베이스 서버가 있는 경우 shared_buffer의 합리적인 시작 값은 시스템 메모리의 25%입니다.
shared_memory_type mmap mmap, sysv, windows Main 공유 메모리 영역에 사용되는 공유 메모리 구현 선택
temp_buffers 1024 (8MB) 100 (800kB)~ 1073741823 (8589934584kB) • 각 세션에서 사용하는 임시 버퍼의 최대 수(메모리 양)를 설정합니다.
• 임시 테이블에 대한 액세스에만 사용되는 세션 로컬 버퍼입니다.
• 개별 세션 내에서 변경할 수 있지만 세션 내에서 임시 테이블을 처음 사용하기 전에만 변경할 수 있습니다.(이후 시도는 해당 세션에 영향을 미치지 않습니다.)
work_mem 4096kB 64~2147483647kB • 쿼리 작업 공간에 사용할 최대 메모리를 설정합니다.
• 임시 디스크 파일에 쓰기 전에 쿼리 작업(ex. 정렬 또는 해시 테이블)에서 사용할 최대 메모리 양을 설정합니다.
• 복잡한 쿼리의 경우 여러 정렬 또는 해시 작업이 병렬로 실행될 수 있으므로 사용된 총 메모리는 값의 work_mem 값의 여러 배가 될 수 있습니다.

 

Disk

Parameter Default Value Range Description
temp_file_limit -1 -1~2147483647kB • 각 프로세스에서 사용하는 모든 임시 파일의 총 크기를 제한합니다.
• 프로세스가 임시 파일(ex. 정렬 및 해시 임시파일 또는 보유한 커서의 저장 파일)에 사용할 수 있는 최대 디스크 공간을 지정하며, 이 크기를 초과하는 트랜잭션은 취소됩니다.
• PostgreSQL 프로세스에서 사용하는 모든 임시 파일이 사용하는 전체 공간을 제한하며, 슈퍼유저만 이 설정을 변경할 수 있습니다.
• 쿼리 실행에서 백그라운드에서 사용되는 임시 파일과 달리 명시적 임시 테이블에서 사용되는 디스크 공간은 이 제한에 포함되지 않습니다.

 

Kernel Resources

Parameter Default Value Range Description
max_files_per_process 1000 64~2147483647 각 서버 프로세스에서 동시에 열 수 있는 최대 파일 수

 

Cost-Based Vacuum Delay

Parameter Default Value Range Description
vacuum_cost_delay 0 0~100 ms Vacuum 작업에 사용될 cost 지연 값을 지정합니다.
0 ⇒ disable
vacuum_cost_limit 200 1~10000 Vacuum을 절전 모드로 전환하는 비용
vacuum_cost_page_dirty 20 0~10000 dirty page를 flush 하는데 필요한 I/O 비용
vacuum_cost_page_hit 1 0~10000 Vacuum을 위해 buffer cache를 탐색하는 비용
vacuum_cost_page_miss 2 0~10000 Vacuum을 위해 disk를 탐색하는 비용

 

Background Writer

Parameter Default Value Range Description
bgwriter_delay 200ms 10ms~10000ms • bgwriter 수행 주기를 나타냅니다.
• bgwriter_lru_maxpages만큼의 dirty pages를 정리한 후 sleep하는 시간입니다.
bgwriter_flush_after 64 (512kB) 0~256(2MB) 이전에 수행된 쓰기가 디스크에 flush된 후 page 수
0 ⇒ disable
bgwriter_lru_maxpages 100 0 ~1073741823 • 한번 write시 디스크로 내릴 수 있는 최대 buffer page 수를 나타냅니다.
• 0으로 설정하면 checkpoint activity를 제외한 background 쓰기가 비활성화됩니다.
bgwriter_lru_multiplier 2.0 0.0~10.0 • 최근 수행에 필요했던 buffer 양 기반으로 각 주기에 디스크에 저장하는 buffer의 양을 예측합니다.(필요 buffer 양의 평균에 bgwriter_lru_multiplier를 곱해서 계산합니다.)
• bgwriter_lru_maxpages 및 bgwriter_lru_multiplier 값이 작을수록 bgwriter로 인한 추가 I/O가 줄어들지만 서버 프로세스가 자체적으로 쓰기를 실행해야 할 가능성이 높아져 interactive queries가 지연됩니다.

 

Asynchronous Behavior

Parameter Default Value Range Description
backend_flush_after 0kB 0~256(2MB) 이전에 수행된 쓰기가 디스크에 flush된 후 page 수
0 ⇒ disable
effective_io_concurrency 1 0~1000 Disk subsystem에서 효율적으로 처리할 수 있는 동시 요청 수
0 ⇒ disable
maintenance_io_concurrency 10 0~1000 유지 보수 작업에 사용되는 effective_io_concurrency의 변형
0 ⇒ disable
max_parallel_maintenance_workers 2 0~1024 유지 관리 작업당 최대 병렬 프로세스 수
max_parallel_workers 8 0~1024 한번에 활성화할 수 있는 최대 병렬 작업자 수
max_parallel_workers_per_gather 2 0~1024 Executor 노드 당 최대 병렬 프로세스 수
max_worker_processes 8 0~262143 최대 동시 작업 프로세스 수
old_snapshot_threshold -1 -1~ 86400min(60d) Snapshot을 만든 후 변경된 페이지를 읽을 수 없을 때까지의 시간
-1 ⇒ disable, 0 ⇒ immeidate
parallel_leader_participation on   Gather나 Gather Merge도 하위 계획을 실행할지 여부

 


WRITE-AHEAD LOG

Settings

Parameter Default Value Range Description
commit_delay 0 0~100000ms 트랜잭션 commit과 Disk에 WAL flush 사이의 지연시간
commit_siblings 5 1~1000 commit_delay를 수행하기 전에 열려 있는 최소 동시 트랜잭션 수
fsync on   Disk에 update를 강제로 동기화
full_page_writes on   Checkpoint 후 처음 수정할 때 전체 페이지를 WAL에 쓸지 여부
synchronous_commit on local, remote_write, remote_apply, on, off 현재 트랜잭션의 동기화 수준 설정
• commit 수행시 WAL 레코드를 디스크로 저장했다는 의미의 "success" 리턴여부를 설정합니다.
• off 인 경우 실제 트랜잭션이 안정하게 반영된 시점까지 delay가 존재합니다.(최대 delay는 wal_writer_delay의 3배입니다.)
• DB성능이 중요하다면 off 권장
wal_buffers -1 -1~262143 (2097144kB) Disk에 아직 기록되지 않은 WAL 데이터에 사용되는 공유 메모리 양 WAL에 대한 공유 메모리의 Disk-page buffer 수 설정
-1 ⇒ shared_buffers로 설정
• 값이 클 수록, 클라이언트가 한 번에 커밋하는 사용량이 많은 서버에서 쓰기 성능이 향상됨
wal_compression off   WAL 파일에 기록된 전체 페이지 쓰기를 압축할지 여부
wal_init_zero on   처음 사용하기 전에 새로운 WAL 파일에 0을 기록할지 여부
wal_level replica minimal, replica, logical WAL에 기록되는 정보의 수준 설정
wal_log_hints off   중요하지 않은 수정에도 Checkpoint 후 처음 수정할 때 전체 페이지를 WAL에 쓸지 여부
wal_recycle on   WAL 파일의 이름을 변경하여 재활용 할지 여부
wal_skip_threshold 2048(2MB) 0~2147483647kB WAL을 쓰는 대신 fsync할 새로운 파일의 최소 크기
(wal_level=minimal 일 경우)
wal_sync_method fdatasync open_datasync, fdatasync, fsync, open_sync Disk에 WAL 업데이트를 강제로 적용하는 데 사용되는 Method 설정
wal_writer_delay 200ms 1ms ~ 10000ms(10s) WAL Writer에서 WAL Flush를 수행하는 간격
• wal writer 기록 간 sleep 시간를 의미하며, sleep delay의 효율적인 설정은 10ms 입니다.
• wal_writer_delay를 10의 배수가 아닌 값으로 설정하면 다음으로 높은 10의 배수로 설정하는 것과 동일합니다.
wal_writer_flush_after 128(1MB) 0 ~ 2147283647 (17179869176kB) Flush를 유발하는 WAL Writer가 기록한 WAL의 양
0 ⇒ disable

 

Checkpoints

Parameter Default Value Range Description
checkpoint_completion_target 0.9 0 ~ 1 • checkpoint 중 dirty buffer는 기간을 나눠서 write하는데, 그 기간을 설정하는 파라미터입니다.
• 0.5인 경우, 다음 checkpoint가 시작되기 전 시간의 약 절반이 지난 후 각 checkpoint를 완료하는 것으로 예상합니다.
checkpoint_flush_after 32 (256kB) 0 ~ 256(2MB) • 이전에 수행된 write에 대해 디스크로 flush 된 page 수 입니다.
• checkpoint를 수행하는 동안 해당 파라미터 값보다 많은 데이터가 기록될때마다 OS는 기본 스토리지에 쓰기를 실행해야 합니다.
• 커널의 page cache에 있는 dirty 데이터의 양이 제한되어 fsync가 checkpoint 끝에서 실행되거나 OS가 백그라운드에서 더 큰 배치로 데이터를 다시 쓸때 멈출 가능성이 감소합니다.
checkpoint_timeout 300s 30~86400s(1day) 자동 WAL checkpoint 간의 최대 시간
checkpoint_warning 30s 0 ~ 2147483647s • checkpoint 사이의 임계값을 구성하는 파라미터입니다.
• checkpoint가 해당 파라미터 값에 가깝게 발생할 경우, 시스템이 서버 로그에 경고하여 사용자가 max_wal_size를 늘릴 것을 권장합니다.
max_wal_size 1024MB 2 ~ 2147483647MB checkpoint가 발생하는 최대 WAL 사이즈입니다.
min_wal_size 80MB 2 ~ 2147483647MB checkpoint가 발생하는 최소 WAL 사이즈입니다. 해당 크기 아래로 유지되는 한 오래된 WAL 파일은 제거되지 않고 체크포인트에서 향후 사용을 위해 항상 재활용됩니다.

 

Archiving

Parameter Default Value Range Description
archive_command     • WAL파일을 아카이브하기 위해 설정한 명령어입니다.
• %p : 아카이브 파일의 경로 이름
• %f : 아카이브 파일명
• WAL 세그먼트 파일이 아카이브되면 archive_command에서 지정한 명령이 실행됩니다. 보관 명령이 0을 리턴하면 PostgreSQL은 파일이 성공적으로 아카이브된 것으로 간주한 다음 WAL 세그먼트 파일을 삭제하거나 재활용합니다. 0이 아닌 다른값이 리턴되면 성공할때까지 주기적으로 재시도를 합니다.
archive_mode off always, on, off • archive_command를 사용하여 WAL파일을 보관할지 설정 가능합니다.
• always로 설정하면 아카이브 복구 또는 대기 모드에서도 Archiver가 활성화됩니다.
archive_timeout 0s 0 ~ 1073741823s • 서버가 주기적으로 새 WAL 세그먼트 파일로 전환하도록 하는 파라미터
• 해당 파라미터의 값만큼의 시간(N초)이 초과되면 WAL 세그먼트 파일이 강제로 전환됩니다.
• 강제스위치로 인해 일찍 닫히는 아카이브 파일의 길이는 전체 파일과 동일하기 때문에 너무 짧은 시간으로 설정하면 아카이브 스토리지가 사용량이 급증할 수 있습니다.(일반적으로 1분을 권장하며 디스크 공간과 대기시간을 고려하여 설정합니다.

 

Archive Recovery

Parameter Default Value Range Description
archive_cleanup_command     재시작 지점에 실행될 쉘 명령 설정
recovery_end_command     복구가 끝날 때 한 번 실행될 쉘 명령 설정
restore_command     보관된 WAL 파일을 검색하기 위해 호출할 수레 명령 설정

 

Recovery Target

Parameter Default Value Range Description
recovery_target     일관된 상태에 도달하는 즉시 복구를 종료하려면 “immediate”로 설정
recovery_target_action pause pause, promote, shutdown 복구 대상에 도달할 때 수행할 작업 설정
recovery_target_inclusive on   복구 대상과의 트랜잭션을 포함할지 제외할지 여부
recovery_target_lsn     복구가 진행될 write-ahead 로그 위치의 LSN을 설정
recovery_target_name     복구가 진행될 지정된 복원 지점 설정
recovery_target_time     복구가 진행될 최대 timestamp 설정
recovery_target_timeline latest current, latest 복구할 시간대 지정
recovery_target_xid     복구가 진행될 트랜잭션 ID 설정

 


REPLICATION

Sending Servers

Parameter Default Value Range Description
max_replication_slots 10 0~262143 동시에 정의된 최대 복제 슬롯 수
max_slot_wal_keep_size -1 -1~2147483647MB 복제 슬롯으로 예약하 수 있는 최대 WAL 크기
-1 ⇒ disable
max_wal_senders 10 0~262143 동시에 실행되는 WAL 송신자 프로세스의 최대 수
track_commit_timestamp off   트랜잭션 Commit 시간 수집여부
wal_keep_size 0 0~2147483647MB Standby 서버에 대해 유지되는 WAL 파일의 크기
0 ⇒ disable
wal_sender_timeout 60000ms (1min) 0~2147483647ms WAL 복제를 대기할 최대 시간
0 ⇒ disable

 

Primary Server (under 13 : Master Server)

Parameter Default Value Range Description
synchronous_standby_names     동기 Standby 수와 잠재적인 동기 Standby 이름 목록
vacuum_defer_cleanup_age 0 0~1000000 Vacuum과 HOT Cleanup을 연기해야 하는 트랜잭션 수

 

Standby Servers

Parameter Default Value Range Description
hot_standby on on, off 복구 중에 연결 및 쿼리 허용 여부
hot_standby_feedback off   쿼리 충돌을 피할 수 있도록 Hot standby에서 Primary로 피드백 허용 여부
max_standby_archive_delay 30000ms -1~2147483647ms Hot standby 서버가 보관된 WAL 데이터 처리시 쿼리를 취소하기 전 최대 지연시간
max_standby_streaming_delay 30000ms -1~2147483647ms Hot standby 서버가 스트리밍된 WAL 데이터 처리시 쿼리를 취소하기 전 최대 지연시간
primary_conninfo     Sending Server에 연결하는 데 사용할 연결 문자열 설정
primary_slot_name     Sending Server에서 사용할 복제 슬롯 이름 설정
promote_trigger_file     대기 상태에서 복구가 끝나는 파일 이름 설정
recovery_min_apply_delay 0ms 0~2147483647ms 복구 중 변경 사항을 적용하기 위한 최소 지연 시간
wal_receiver_create_temp_slot off   영구적인 슬롯이 구성되지 않은 경우, WAL Receiver가 임시 복제 슬롯 생성 여부
wal_receiver_status_interval 10s 0~2147483s WAL Receiver 상태 보고서를 Sending Server에 전달하는 최대 시간 간격
0 ⇒ disable
wal_receiver_timeout 60000ms 0~2147483647ms Seding Server에서 데이터를 수신하기 위한 최대 대기 시간
0 ⇒ disable
wal_retrieve_retry_interval 5000ms 1~2147483647ms 실패한 시도 후 WAL 검색을 다시 시도하기까지 대기 시간

 

Subscribers

Parameter Default Value Range Description
max_logical_replication_workers 4 0~262143 논리적 복제 작업 프로세스의 최대 수
max_sync_workers_per_subscription 2 0~262143 Subscription 당 테이블 동기화 작업자의 최대 수

 


QUERY TUNING

Planner Method Configuration

Parameter Default Value Description
enable_async_append on [14버전추가] async append plan 사용 여부
enable_bitmapscan on bitmap-scan plan 사용 여부
enable_gathermerge on [14버전추가] gather merge plan 사용 여부
enable_hashagg on hash aggregation plan 사용 여부
enable_hashjoin on hash join plan 사용 여부
enable_incremental_sort on incremental sort plan 사용 여부
enable_indexscan on index scan plan 사용 여부
enable_indexonlyscan on index-only-scan plan 사용 여부
enable_material on materialization plan 사용 여부
enable_memoize on [14버전추가] memoization plan 사용 여부
enable_mergejoin on merge join plan 사용 여부
enable_nestloop on nested-loop join plan 사용 여부
enable_parallel_append on parallel append plan 사용 여부
enable_parallel_hash on parallel hash plan 사용 여부
enable_partition_pruning on plan-time과 execution-time partition pruning 사용 여부
enable_partitionwise_join off partitionwise join 사용 여부
enable_partitionwise_aggregate off partitionwise aggregation과 grouping 사용 여부
enable_seqscan on sequential-scan plan 사용 여부
enable_sort on 명시적 sort plan 사용 여부
enable_tidscan on TID scan plan 사용 여부

 

Planner Cost Constants

Parameter Default Value Range Description
cpu_index_tuple_cost 0.005 0~1.79769e+308 Index Scan 동안 각 Index 항목을 처리하는 비용에 대한 추정치
cpu_operator_cost 0.0025 0~1.79769e+308 각 연산자나 함수 호출을 처리하는 비용에 대한 추정치
cpu_tuple_cost 0.01 0~1.79769e+308 각 tuple(row)를 처리하는 비용에 대한 추정치
effective_cache_size 524288 (4GB) 1(8kB)~2147483647(17179869176kB) Data cache의 총 크기에 대한 가정(assumption)
jit_above_cost 100000 -1~1.79769e+308 지정값 보다 쿼리 비용이 더 많이 발생할 경우 JIT 컴파일 수행
-1 ⇒ disable
jit_inline_above_cost 500000 -1~1.79769e+308 지정값 보다 쿼리 비용이 더 많이 발생할 경우 JIT inlining 수행
-1 ⇒ disable
jit_optimize_above_cost 500000 -1~1.79769e+308 지정값 보다 쿼리 비용이 더 많이 발생할 경우 JIT 컴파일 함수를 최적화
-1 ⇒ disable
min_parallel_index_scan_size 64(512kB) 0~715827882 (5726623056kB) parallel scan을 위한 인덱스 데이터 최소 양
min_parallel_table_scan_size 1024(8MB) 0~715827882 (5726623056kB) parallel scan을 위한 테이블 데이터 최소 양
parallel_setup_cost 1000.0 0~1.79769e+308 paralle query를 위한 작업 프로세스 시작 비용에 대한 추정치
parallel_tuple_cost 0.1 0~1.79769e+308 각 tuple(row)를 worker에서 leader backend로 전달하는 비용에 대한 추정치
random_page_cost 4.0 0~1.79769e+308 순차적으로 읽지 않은 Disk page 비용에 대한 추정치
seq_page_cost 1.0 0~1.79769e+308 순차적으로 읽은 Disk page 비용에 대한 추정치

 

Genetic Query Optimizer

Parameter Default Value Range Description
geqo on   genetic query optimization 활성화 여부
geqo_effort 5 1~10 다른 GEQO 파라미터에 대한 기본값을 설정하는데 사용
geqo_generations 0 0~2147483647 알고리즘의 반복 횟수
geqo_pool_size 0 0~2147483647 집단의 개체 수
geqo_seed 0.0 0.0~1.0 seed for random path selection
geqo_selection_bias 2.0 1.5~2.0 집단 내에 선택압력(selective pressure)
geqo_threshold 12 2~2147483647 GEQO가 사용되는 FROM 항목의 임계값

 

Other Planner Options

Parameter Default Value Range Description
constraint_exclusion partition on, off, partition 제약조건을 사용하여 쿼리 최적화 할지 여부
• on : 모든 테이블 제약 조건 검사
cursor_tuple_fraction 0.1 0.0~1.0 검색한 cursor’s rows의 비율 추정치
default_statistics_target 100 1~10000 기본 통계 대상 설정
• 값이 클수록 Analyze를 수행하는 시간은 늘지만, 예상 값을 향상 됨
from_collapse_limit 8 1~2147483647 subquery가 축소(collapsed)되지 않는 FROM 목록의 크기
jit on   JIT 컴파일 사용 여부
join_collapse_limit 8 1~2147483647 JOIN 구성이 평명화 되지 않는 FROM 목록의 크기
1 ⇒ disable
plan_cache_mode auto auto, force_generic_plan, force_custom_plan 사용자 또는 일반 Plan 선택을 제어

 


REPORTING AND LOGGING

Where to Log

Parameter Default Value Range Description
event_source PostgreSQL   이벤트 로그에서 메시지 식별자 키워드(Windows용)
log_destination stderr stderr, csvlog, syslog, eventlog • 서버 로그 출력 대상을 설정합니다.
• PostgreSQL은 stderr, csvlog 및 syslog를 포함하여 서버 메시지를 기록하는 여러 방법을 지원합니다. (Windows에서는 이벤트 로그도 지원됩니다.)
log_diretory log   logging_collector 활성화인 경우 로그 파일의 디렉토리를 결정합니다.
log_file_mode 0600   로그 파일에 권한
log_filename postgresql-%Y-%m-%d_%H%M%S.log   로그 파일 이름 패턴
logging_collector off   stderr 또는 csvlog로 전송된 로그 메시지를 파일로 캡처하는 하위 프로세스 시작여부를 결정하는 파라미터입니다.
log_rotation_age 1440min (1d) 0~35791394min 설정값(기간) 후 로그파일 순환
0 ⇒ disable
log_rotation_size 10240kB (10MB) 0~2097151kB 설정값(크기) 후 로그파일 순환
0 ⇒ disable
log_truncate_on_rotation off   로그파일 순환 중 동일 이름의 로그 삭제여부
syslog_facility local0 local0~7 syslog 설정 시 syslog “facility” 설정
syslog_ident postgres   syslog에서 메시지 식별자 키워드
syslog_sequence_numbers on   중복 방지를 위해 syslog 메시지에 시퀀스 번호 추가여부
syslog_split_messages on   syslog를 줄별로 나누고 1024byte에 분할 할지 여부

 

When to Log

Parameter Default Value Range Description
log_min_duration_sample -1ms -1~2147483647ms 문장 샘플이 기록되는 최소 실행 시간.
샘플링은 log_statement_sample_rate에 의해 결정
-1 ⇒ disable , 0 ⇒ all
log_min_duration_statement -1ms -1~2147483647ms 모든 문장이 기록되는 최소 실행 시간
-1 ⇒ disable, 0 ⇒ all
log_min_error_statement error debug1~5, info, notice, warning, error, log, fatal, panic 설정된 레벨 이상에서 오류를 유발하는 모든 문장 기록
log_min_messages warning debug1~5, info, notice, warning, error, log, fatal, panic 기록되는 메시지 레벨 설정
log_statement_sample_rate 1.0 0.0~1.0 실행시간이 log_min_duration_sample을 초과하는 문장을 기록하기 위한 비율
0 ⇒ disable, 1 ⇒ all, 0.5 ⇒ 둘 중 하나만 기록
log_transaction_sample_rate 0.0 0.0~1.0 모든 문장을 기록할 트랜잭션의 비율
0 ⇒ disable, 1 ⇒ all

 

What to Log

Parameter Default Value Range Description
debug_pretty_print on   들여쓰기 구문 분석 및 plan 트리 표시 여부
debug_print_parse off   각 쿼리의 구문 분석 트리 기록 여부
debug_print_plan off   각 쿼리의 실행계획 기록 여부
debug_print_rewritten off   각 쿼리의 재작성된 구문 분석 트리 기록 여부
log_autovacuum_min_duration -1ms -1~2147483647ms [14버전추가]
• autovacuum 작업을 로그에 기록할 최소 실행시간을 설정합니다.
• log_autovacuum_min_duration를 초과하여 실행되는 경우 로그에 incident로 기록되므로 autovauum 작업 확인에 도움이 되는 파라미터입니다.
• -1 : autovauum 작업에 대하여 로그 비활성화
• 0 : 모든 autovauum 작업에 대하여 로그 기록
log_checkpoints off   각 Checkpoint 기록 여부
log_connections off   성공한 Connection 로그 기록 여부
log_disconnections off   세션 종료 로그 기록(지속시간 포함) 여부
log_duration off   완료된 SQL 문장의 지속시간 기록 여부
log_error_verbosity default terse, default, verbose 기록된 메시지의 상세 내용 설정
log_hostname off   Connection 로그에 host-name 기록 여부
log_line_prefix %m [%p] %q%u@%d   각 로그 줄에 붙는 접두사 설정
log_lock_waits off   Long lock wait 시간 기록 여부
log_parameter_max_length -1 -1~1073741823B 문장을 기록할때, 기록된 파라미터 값을 처음 설정값(Byte)로 제한
0 ⇒ disable, -1 ⇒ full
log_parameter_max_length_on_error 0 -1~1073741823B 오류 보고 시, 기록된 파라미터 값을 처음 설정값(Byte)로 제한
0 ⇒ disable, -1 ⇒ full
log_recovery_conflict_waits off   [14버전추가] Recovery conflicts에 대해 시작 프로세스가 deadlock_timeout 보다 오래 대기 할 때 메시지를 생성할지 여부
log_replication_commands off   각 복제 명령어 기록 여부
log_statement none none, ddl, mod, all 기록되는 문장의 유형 설정
log_temp_files -1kB -1~2147493647kB 설정 값보다 큰 임시 파일의 사용하여 기록
-1 ⇒ disable, 0 ⇒ all
log_timezone Etc/UTC    

 


PROCESS TITLE

Parameter Default Value Range Description
cluster_name 14/main   프로세스에 포함된 클러스터의 이름 설정
update_process_title on   Active SQL 명령문을 표시하도록 프로세스 제목 업데이트 여부

 


STATISTICS

Query and Index Statistics Collector

Parameter Default Value Range Description
stats_temp_directory /var/run/postgresql/14-main.pg_stat_tmp   • 통계정보를 위한 임시 저장 경로를 나타냅니다.(상대 또는 절대 경로)
• 이 파일은 초당 수백번 업데이트되기 때문에 RAM 기반의 파일 시스템으로 설정하면 물리적 IO 요구사항을 줄여서 성능을 향상시킬 수 있습니다.
• 서버가 완전히 종료되면 통계 데이터의 복사본이 pg_stat 하위 디렉토리에 영구적으로 저장되므로 서버를 다시 시작해도 통계는 유지됩니다.
track_activities on   • 세션에 대한 통계정보 수집 기능을 사용할지 여부를 나타냅니다.(수퍼유저만 설정 변경 가능)
• 각 세션의 현재 실행 중인 command에 대한 정보와 실행 시작 시간을 수집합니다.
• 수퍼유저 및 세션을 소유한 사용자만 해당 정보를 확인할 수 있습니다.
track_activity_query_size 1024B 100~1048576B • 각 active session에서 현재 실행된 command(pg_stat_activity.query)를 수집에 사용되는 바이트 수를 설정합니다.
• pg_stat_activity, pg_stat_statements 에서 쿼리를 잘라내기 위한 임계치로 사용합니다.
track_counts on   • 테이블 및 인덱스 액세스에 대한 통계 수집여부를 설정합니다.(수퍼유저만 설정 변경 가능)
• autovacuum 프로세스에서 이 통계정보를 활용해서 vacuum을 수행하므로 기본적으로 설정 on으로 해당 정보를 수집합니다.
track_functions none none, pl, all • 사용자 정의 function에 대한 통계 정보 수집 파라미터입니다.(수퍼유저만 설정 변경 가능)
• function 호출 횟수와 사용시간 등의 정보를 수집합니다.
• pl : procedure로 작성된 언어 function만 수집
• all : 모든 SQL 및 C언어 function도 수집
• none : 비활성화
track_io_timing off   • 데이터베이스 I/O 활동에 대한 타이밍 통계 수집 기능을 사용할지 여부를 나타냅니다.(수퍼유저만 설정 변경 가능)
• on으로 설정하면 데이터베이스 시간이 반복적으로 호출되어 데이터베이스에 많은 오버헤드가 추가되기 때문에 기본값은 off입니다.(pg_test_timing 도구를 사용하여 타이밍 오버헤드를 측정할 수 있습니다.)
track_wal_io_timing off   [14버전추가] WAL I/O 활동에 대한 시간통계 수집 여부

 

Monitoring

Parameter Default Value Range Description
compute_query_id auto auto, on, off [14버전추가] 쿼리 식별자 계산
log_executor_stats off   Executor 성능 통계를 서버 로그에 기록할지 여부
log_parser_stats off   Parser 성능 통계를 서버 로그에 기록할지 여부
log_planner_stats off   Planner 성능 통계를 서버 로그에 기록할지 여부
log_statement_stats off   서버 로그에 누적 성능 통계를 기록할지 여부

 


AUTOVACUUM

Parameter Default Value Range Description
autovacuum on   • autovacuum subprocess(autovacuum launcher daemon)를 시작할지 설정합니다.(해당 파라미터의 default 값은 on이지만 autovauum를 작동하려면 track_counts도 활성화해야 합니다.)
• off 로 설정해도 필요한 경우 시스템이 autovauum 프로세스를 시작합니다.
• table storage 파라미터를 변경하여 개별 테이블에 대해 autovacuum 기능을 사용하지 않도록 설정할 수 있습니다.
autovacuum_analyze_scale_factor 0.1 0.0~100.0 ANALYZE 트리거 여부를 결정할 때, autovacuum_analyze_threshold에 추가할 테이블 크기의 비율
autovacuum_analyze_threshold 50 0~2147483647 ANALYZE 트리거하는데 필요한 insert, update, delete tuple의 최소 수
autovacuum_freeze_max_age 200000000 100000~2000000000 • autovacuum 이 강제로 실행되어야 하는 트랜잭션ID의 상한값을 설정합니다.(table storage 파라미터를 변경하여 개별 테이블에 대해 설정을 줄일 수 있습니다.)
• autovacuum이 비활성화된 경우에도 해당 값을 초과하면 autovacuum 프로세스를 시작합니다.
autovacuum_max_workers 3 1~262143 • 한번에 실행할 수 있는 autovacuum worker 프로세스의 최대 수를 설정합니다.
• autovacuum worker 프로세스는 개별로 cpu, memory, I/O를 사용합니다.
autovacuum_multixact_freeze_max_age 400000000 10000~2000000000 테이블 내에서 multixact ID wraparound를 방지하기 위해 vacuum이 강제 실행되기 전 테이블의 pg_class.relminmxid 필드가 도달할 수 있는 최대 수
autovacuum_naptime 60s 1~2147483s • autovacuum 실행 사이의 sleep time 을 지정합니다.
• 주기마다 deamon이 데이터베이스를 확인해서 VACUUM & ANALYZE가 필요한 경우 해당 command를 실행합니다.
autovacuum_vacuum_cost_delay 2ms -1~100ms • autovacuum 작업에 사용될 cost 지연 값을 지정합니다.(-1이며 vacuum_cost_delay 값을 대신 사용)
• autovacuum_vacuum_cost_limit 값을 초과하면 autovacuum_vacuum_cost_delay 설정만큼의 지연이 발생합니다.
autovacuum_vacuum_cost_limit -1 -1~10000 • autovacuum 작업에 사용될 비용 제한 값을 지정합니다.(-1이면 vacuum_cost_limit 값을 대신 사용)
• autovacuum workers 간에 비례적으로 분배되므로 각 worker 프로세스에 대한 limit 의 합계가 이 파라미터 값을 초과하지 않습니다.
autovacuum_vacuum_insert_scale_factor 0.2 0.0~100.0 Vacuum을 트리거할지 여부를 결정할때 autovacuum_vacuum_insert_threshold에 추가할 테이블 크기의 비율
autovacuum_vacuum_insert_threshold 1000 -1~2147483647 VACUUM을 트리거하는 데 필요한 insert tuple의 수
-1 ⇒ disable (insert 기반으로 vacuum을 트리거 하지 않음)
autovacuum_vacuum_scale_factor 0.2 0~100 • autovacuum 이전에 업데이트 또는 삭제된 tuple 의 수(retuple 비율)
• default는 0.2로 테이블 크기의 20%를 초과하는 경우 VACUUM 트리거를 실행합니다.
autovacuum_vacuum_threshold 50 0~2147483647 autovacuum 이전에 업데이트 또는 삭제할 tuple 수의 임계값을 나타냅니다.(이 값을 초과할 경우 autovauum/analyze를 각각 수행해야 합니다.)

 


CLIENT CONNECTION DEFAULTS

Statement Behavior

Parameter Default Value Range Description
bytea_output hex hex, escape bytea type에 대한 출력 형식 설정
check_function_bodies on   CREATE FUNCTION, CREATE PROCEDURE 동안 본문 문자열의 유효성 검사 여부
client_min_messages notice debug1~5, log, notice, warning, error 클라이언트에 전송되는 메시지 레벨
default_table_access_method heap   새로운 테이블에 대한 기본 테이블 액세스 방법을 설정
default_tablespace     테이블과 인덱스를 생성할 기본 테이블스페이스 설정
NULL = default
default_toast_compression pglz pglz, lz4 [14버전추가] 데이터 압축 방법 (13버전까지는 pglz만 지원)
lz4 압축방법을 사용하기 위해서는 PostgreSQL을 --with-lz4로 빌드해야 함
default_transaction_deferrable off   새로운 트랜잭션의 default defferrable 상태 설정
default_transaction_isolation read committed serializable, repeatable read, read committed, read uncommitted 새로운 트랜잭션의 트랜잭션 분리 수준 설정
default_transaction_read_only off   새로운 트랜잭션의 기본 읽기 전용 상태 설정
gin_pending_list_limit 4096kB 64~2147493647kB GIN 인덱스에 대한 보류 중인 목록의 최대 크기
idle_in_transaction_session_timeout 0ms 0~2147493647ms 트랜잭션 중 쿼리 사이에 허용되는 최대 idle 시간
0 ⇒ disable
idle_session_timeout 0ms 0~2147493647ms [14버전추가] 트랜잭션 중이지 않을때, 쿼리 사이에 허용되는 최대 idle 시간
0 ⇒ disable
lock_timeout 0ms 0~2147483647ms Lock 대기의 최대 허용 시간
0 ⇒ disable
row_security on   Row security 사용 여부
search_path "$user", public   스키마가 지정되지 않은 단순 이름으로 Object를 참조할 때 스키마가 검색되는 순서
session_replication_role origin origin, replica, local 트리거 및 재작성 규칙에 대한 세션 동작 설정
statement_timeout 0ms 0~2147493647ms 문장의 최대 허용 기간 설정
0 ⇒ disable
temp_tablespaces     Temp table과 sort file에 사용할 테이블스페이스 설정
vacuum_failsafe_age 1600000000 0~2100000000 [14버전추가] vacuum이 시스템 전체의 트랜잭션ID wraparound 실패를 피하기 위해 특별한 조치를 취하기 전에 테이블의 pg_class.relfrozenxid 필드가 도달할 수 있는 Age
vacuum_freeze_min_age 50000000 0~1000000000 Vacuum이 table row를 freeze해야 하는 최소 Age
vacuum_freeze_table_age 150000000 0~2000000000 Vacuum이 tuple을 고정하기 위해 전체 테이블을 스캔해야 하는 Age
vacuum_multixact_failsafe_age 1600000000 0~2100000000 [14버전추가] vacuum이 시스템 전체의 multixact ID wraparound 실패를 피하기 위해 특별한 조치를 취하기 전에 테이블의 pg_class.relminmxid필드가 도달할 수 있는 Age
vacuum_multixact_freeze_min_age 5000000 0~1000000000 Vacuum이 table row에서 MultiXactID를 freeze해야 하는 최소 Age
vacuum_multixact_freeze_table_age 150000000 0~2000000000 Vacuum이 tuple을 고정하기 위해 전체 테이블을 스캔해야 하는 Multixact Age
xmlbinary base64 base64, hex binary 값을 XML로 인코딩하는 방법 설정
xmloption content content, document 암시적 구문 분석 및 직렬화 작업의 XML 데이터를 문서 또는 콘텐츠 조각으로 간주할지 여부

 

Locale and Formatting

Parameter Default Value Range Description
client_encoding sql_ascii   클라이언트의 문자 집합 인코딩 설정
datestyle iso, mdy   날짜와 시간 값의 표시 형식 설정
default_text_search_config pg_catalog.english   기본 텍스트 검색 구성 설정
extra_float_digits 1 -15~3 부동 소수점으로 표시되는 자릿수 설정
intervalstyle postgres postgres, postgres_verbose, sql-standard, iso_8601 Interval Value의 표시 형식 설정
lc_messages en_US.UTF-8   메시지가 표시되는 언어 설정
lc_monetary C   화폐 금액의 형식 설정
lc_numeric en_US.UTF-8   숫자 형식 설정
lc_time en_US.UTF-8   날짜와 시간 형식 설정
timezone GMT   Timestamp를 표시하고 해석하기 위한 시간대 설정
timezone_abbreviations Default   시간대 약어파일 선택

 

Shared Library Preloading

Parameter Default Value Range Description
jit_provider llvmjit   사용하고자 하는 JIT Provider
local_preload_libraries     각 backend에서 미리 로드할 권한이 없는 공유 라이브러리 나열
session_preload_libraries     각 backend에 미리 로드할 공유라이브러리 나열
shared_preload_libraries     서버에 미리 로드할 공유 라이브러리 나열

 

Other Defaults

Parameter Default Value Range Description
dynamic_library_path $libdir   동적으로 로드할 수 있는 모듈의 경로
extension_destdir     extension 로드를 위해 추가할 경로
gin_fuzzy_search_limit 0 0~2147483647 GIN에 의한 정확한 검색을 위해 허용되는 최대 결과 설정

 


LOCK MANAGEMENT

Parameter Default Value Range Description
deadlock_timeout 1000ms 1~2147483647ms deadlock 상태를 확인하기 전 Lock 대기하는 시간
max_locks_per_transaction 64 10~2147483647 트랜잭션당 최대 Lock 수
max_locks_per_transaction * (max_connections + max_prepared_transactions)
max_pred_locks_per_page 2 0~2147483647 Page당 predicate-locked tuple 최대 수
max_pred_locks_per_relation -2 -2147483648~2147483647 Relation당 predicate-locked page 와 tuple의 최대 수
0≤ ⇒ 제한 값, 0> ⇒ max_pred_locks_per_transaction / abs(설정값)
max_pred_locks_per_transaction 64 10~2147483647 트랜잭션당 최대 Predicate Lock 수
max_pred_locks_per_transaction * (max_connections + max_prepared_transactions)

 


VERSION AND PLATFORM COMPATIBILITY

Previous PostgreSQL Versions

Parameter Default Value Range Description
array_nulls on   배열에서 NULL 요소 입력 활성화 여부
backslash_quote safe_encoding on, off, safe_encoding 문자열 Literal에서 “\” 허용 여부
escape_string_warning on   일반 문자열 Literal에서 ”\”에 대한 경고 여부.
on ⇒ Literal에 표시, standard_conforming_strings=off 경우 경고 발생
lo_compat_privileges off   큰 Object에 대한 권한 검사를 위해 이전 버전과의 호환성 모드 활성화 여부
quote_all_identifiers off   SQL 조각을 만들때, 모든 식별자를 인용할지 여부
standard_conforming_strings on   ‘...’ 문자열이 “\”를 문자 그대로 처리하도록 할지 여부
synchronize_seqscans on   동기화된 sequential scan 활성화 여부

 

Other Platforms and Clients

Parameter Default Value Range Description
transform_null_equals off   “expr=NULL”을 “expr IS NULL”로 처리 할지 여부

 


ERROR HANDLING

Parameter Default Value Range Description
data_sync_retry off   데이터 파일 동기화 실패 후 계속 실행할지 여부
exit_on_error off   오루 발생 시 세션 종료 여부
recovery_init_sync_method fsync fsync, syncfs [14버전추가] Crash Recovery전에 데이터 디렉토리를 동기화하는 방법 설정
restart_after_crash on   Backend crash 후 서버 초기화 할지 여부

 


Vacuum Series

Parameter Default Value Range Description
autovacuum ON   • autovacuum subprocess(autovacuum launcher daemon)를 시작할지 설정합니다.(해당 파라미터의 default 값은 on이지만 autovauum를 작동하려면 track_counts도 활성화해야 합니다.) • off 로 설정해도 필요한 경우 시스템이 autovauum 프로세스를 시작합니다.
• table storage 파라미터를 변경하여 개별 테이블에 대해 autovacuum 기능을 사용하지 않도록 설정할 수 있습니다.
autovacuum_freeze_max_age 200,000,000 -1~2,147,483,647 • autovacuum 이 강제로 실행되어야 하는 트랜잭션ID의 상한값을 설정합니다.(table storage 파라미터를 변경하여 개별 테이블에 대해 설정을 줄일 수 있습니다.)
• autovacuum이 비활성화된 경우에도 해당 값을 초과하면 autovacuum 프로세스를 시작합니다.
autovacuum_max_workers 3 1~262,143 • 한번에 실행할 수 있는 autovacuum worker 프로세스의 최대 수 를 설정합니다.
• autovacuum worker 프로세스는 개별로 cpu, memory, I/O를 사용합니다.
autovacuum_naptime 60s 1~2,147,483s • autovacuum 실행 사이의 sleep time 을 지정합니다.
• 주기마다 deamon이 데이터베이스를 확인해서 VACUUM & ANALYZE가 필요한 경우 해당 command를 실행합니다.
autovacuum_vacuum_insert_scale_factor 0.2 0~100.0 Vacuum을 트리거할지 여부를 결정할때 autovacuum_vacuum_insert_threshold에 추가할 테이블 크기의 비율
autovacuum_vacuum_insert_threshold 10,000 -1~2,147,483,647 VACUUM을 트리거하는 데 필요한 insert tuple의 수 -1 ⇒ disable (insert 기반으로 vacuum을 트리거 하지 않음)
autovacuum_vacuum_scale_factor 0.2 0~100.0 • autovacuum 이전에 업데이트 또는 삭제된 tuple 의 수(retuple 비율)
• default는 0.2로 테이블 크기의 20%를 초과하는 경우 VACUUM 트리거를 실행합니다.
autovacuum_vacuum_threshold 50 0~2,147,483,647 autovacuum 이전에 업데이트 또는 삭제할 tuple 수의 임계값을 나타냅니다.(이 값을 초과할 경우 autovauum/analyze를 각각 수행해야 합니다.)
vacuum_freeze_min_age 50,000,000 0~1,000,000,000 Vacuum이 table row를 freeze해야 하는 최소 Age
vacuum_freeze_table_age 150,000,000 0~2,000,000,000 Vacuum이 tuple을 고정하기 위해 전체 테이블을 스캔해야 하는 Age
track_counts ON   • 테이블 및 인덱스 액세스에 대한 통계 수집여부를 설정합니다.(수퍼유저만 설정 변경 가능)
• autovacuum 프로세스에서 이 통계정보를 활용해서 vacuum을 수행하므로 기본적으로 설정 on으로 해당 정보를 수집합니다.

 

댓글