Snowflake Postgres 서버 설정

아래 테이블에는 Snowflake Postgres 인스턴스의 Postgres 서버 구성 요소에 대해 설정할 수 있는 매개 변수가 자세히 설명되어 있습니다. 각 설정의 이름은 해당 Postgres 설명서에 하이퍼링크로 연결되어 있습니다.

Where “Postgres default” appears in the Default column, Snowflake Postgres instances use the default value from Postgres. This can vary by major version.

Snowflake Postgres 인스턴스를 생성할 때 해당 Postgres 서버 설정 값을 설정하는 방법에 대한 자세한 내용은 Snowflake Postgres 인스턴스 생성하기 섹션을 참조하세요.

To see a parameter’s documentation for a specific major version change the word “current” in the hyperlink address to the target major version. For example, this hyperlink address for the postgres:work_mem setting:

https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM

Postgres 17 설명서의 주소는 다음과 같습니다.

https://www.postgresql.org/docs/17/runtime-config-resource.html#GUC-WORK-MEM

구성 요소

이름

다시 시작 필요

설명

기본값

pgbouncer

autodb_idle_timeout

FALSE

자동으로 생성된(“*”을 통해) 데이터베이스 풀이 해당 시간(초) 동안 사용되지 않은 경우 풀이 해제됩니다.

3600

pgbouncer

default_pool_size

FALSE

사용자/데이터베이스 페어당 허용할 서버 연결 수입니다.

497

pgbouncer

ignore_startup_parameters

FALSE

매개 변수 시작 패킷(예: options,extra_float_digits)을 무시합니다.

client_encoding,datestyle,timezone,standard_conforming_strings,extra_float_digits

pgbouncer

max_prepared_statements

FALSE

단일 서버 연결에서 활성 상태로 유지되는 준비된 문의 수

250

pgbouncer

pool_mode

FALSE

다른 클라이언트가 서버 연결을 다시 사용할 수 있는 시점을 지정합니다.

트랜잭션

pgbouncer

server_idle_timeout

FALSE

If a server connection has been idle for more than this many seconds, it will be closed.

60

postgres

auto_explain.log_analyze

FALSE

실행 계획이 기록될 때 EXPLAIN 출력만이 아닌 EXPLAIN ANALYZE 출력도 인쇄되도록 합니다.

Postgres 기본값

postgres

auto_explain.log_buffers

FALSE

실행 계획이 기록될 때 버퍼 사용 통계를 인쇄할지 여부를 제어합니다.

Postgres 기본값

postgres

auto_explain.log_format

FALSE

사용할 EXPLAIN 출력 형식을 선택합니다.

Postgres 기본값

postgres

auto_explain.log_min_duration

FALSE

문의 계획이 기록되도록 하는 최소 문 실행 시간(밀리초)입니다.

Postgres 기본값

postgres

auto_explain.log_nested_statements

FALSE

중첩된 문(함수 내에서 실행되는 문)이 로깅을 위해 고려되도록 합니다.

Postgres 기본값

postgres

auto_explain.log_timing

FALSE

실행 계획이 기록될 때 노드별 타이밍 정보를 인쇄할지 여부를 제어합니다.

Postgres 기본값

postgres

auto_explain.log_triggers

FALSE

실행 계획이 기록될 때 트리거 실행 통계가 포함되도록 합니다.

Postgres 기본값

postgres

auto_explain.log_verbose

FALSE

실행 계획이 기록될 때 자세한 세부 정보를 인쇄할지 여부를 제어합니다.

Postgres 기본값

postgres

auto_explain.sample_rate

FALSE

auto_explain이 각 세션에서 문의 일부만 설명하도록 합니다.

Postgres 기본값

postgres

autovacuum_analyze_scale_factor

FALSE

ANALYZE를 트리거할지 여부를 결정할 때 autovacuum_analyze_threshold에 추가할 테이블 크기의 일부를 지정합니다.

Postgres 기본값

postgres

`autovacuum_freeze_max_age<https://www.postgresql.org/docs/17/runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE>`_

TRUE

테이블의 트랜잭션 ID가 테이블 내에서 트랜잭션 ID 순환을 방지하기 위해 VACUUM 작업이 강제되기 전에 도달할 수 있는 최대 기간(트랜잭션 수)을 지정합니다.

Postgres 기본값

postgres

autovacuum_vacuum_cost_delay

FALSE

자동 VACUUM 작업에서 사용할 비용 지연 값을 지정합니다. -1을 지정하면 일반 vacuum_cost_delay 값이 사용됩니다.

Postgres 기본값

postgres

autovacuum_vacuum_cost_limit

FALSE

자동 VACUUM 작업에서 사용할 비용 제한 값을 지정합니다.

Postgres 기본값

postgres

autovacuum_vacuum_insert_scale_factor

FALSE

VACUUM을 트리거할지 여부를 결정할 때 autovacuum_vacuum_insert_threshold에 추가할 테이블 크기의 일부를 지정합니다.

Postgres 기본값

postgres

autovacuum_vacuum_insert_threshold

FALSE

하나의 테이블에서 VACUUM을 트리거하는 데 필요한 삽입된 튜플 수를 지정합니다.

Postgres 기본값

postgres

autovacuum_vacuum_scale_factor

FALSE

VACUUM을 트리거할지 여부를 결정할 때 autovacuum_vacuum_threshold에 추가할 테이블 크기의 일부를 지정합니다.

Postgres 기본값

postgres

checkpoint_completion_target

FALSE

검사점 완료 대상을 검사점 간의 총 시간에 대한 비율로 지정합니다.

Postgres 기본값

postgres

checkpoint_timeout

FALSE

자동 WAL 검사점 간의 최대 시간입니다.

Postgres 기본값

postgres

checkpoint_warning

FALSE

WAL 세그먼트 파일 채우기로 인해 발생한 검사점이 해당 시간보다 더 짧은 간격으로 발생하는 경우 서버 로그에 메시지를 작성합니다.

Postgres 기본값

postgres

default_statistics_target

FALSE

ALTER TABLE SET STATISTICS를 통해 설정된 열별 대상이 없는 테이블 열에 대한 기본 통계 대상을 설정합니다.

Postgres 기본값

postgres

default_text_search_config

FALSE

구성을 지정하는 명시적 인자가 없는 텍스트 검색 함수의 베리언트에서 사용하는 텍스트 검색 구성을 선택합니다.

Postgres 기본값

postgres

default_transaction_read_only

FALSE

읽기 전용 SQL 트랜잭션은 비임시 테이블을 변경할 수 없습니다.

꺼짐

postgres

hot_standby_feedback

FALSE

핫 대기가 해당 대기에서 현재 실행 중인 쿼리에 대한 피드백을 기본 대기에 전송할지 업스트림 대기에 전송할지 여부를 지정합니다.

날짜

postgres

idle_in_transaction_session_timeout

FALSE

열린 트랜잭션 내에서 지정된 시간보다 오랫동안 유휴 상태였던 세션을 종료합니다.

Postgres 기본값

postgres

`intervalstyle<https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-INTERVALSTYLE>`_

FALSE

간격 값의 표시 형식을 설정합니다.

Postgres 기본값

postgres

`jit<https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-JIT>`_

FALSE

JIT 지원을 활성화합니다.

Postgres 기본값

postgres

lock_timeout

FALSE

잠금 획득을 시도하는 동안 지정된 시간보다 오래 대기하는 모든 문을 중단합니다.

Postgres 기본값

postgres

`log_autovacuum_min_duration<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-AUTOVACUUM-MIN-DURATION>`_

FALSE

autovacuum이 실행한 각 작업이 지정된 시간보다 오래 실행된 경우 기록됩니다.

Postgres 기본값

postgres

`log_connections<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-CONNECTIONS>`_

FALSE

성공적인 각 연결을 자세히 설명하는 라인을 서버 로그에 출력합니다.

Postgres 기본값

postgres

`log_destination<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-DESTINATION>`_

FALSE

원하는 로그 대상을 설정합니다.

syslog,stderr

postgres

log_disconnections

FALSE

세션 종료가 기록되도록 합니다. 로그 출력은 log_connections와 유사한 정보 및 세션 기간을 제공합니다.

Postgres 기본값

postgres

`log_duration<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-DURATION>`_

FALSE

완료된 모든 문의 기간을 기록하도록 합니다.

Postgres 기본값

postgres

log_line_prefix

FALSE

각 로그 줄의 시작 부분에 출력되는 printf 스타일 문자열을 지정합니다.

[%p][%b][%v][%x] %q[user=%u,db=%d,app=%a]

postgres

log_lock_waits

FALSE

세션이 잠금을 획득하기 위해 deadlock_timeout보다 오래 대기할 때 로그 메시지를 생성할지 여부를 제어합니다.

날짜

postgres

log_min_duration_sample

FALSE

지정된 시간보다 오래 실행된 완료된 문의 기간을 샘플링할 수 있습니다.

Postgres 기본값

postgres

log_min_duration_statement

FALSE

문이 지정된 시간보다 오래 실행된 경우 완료된 각 문의 기간이 기록되도록 합니다.

2초

postgres

`log_min_messages<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES>`_

FALSE

서버 로그에 기록된 메시지 수준을 제어합니다.

공지

postgres

`log_rotation_size<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE>`_

FALSE

이에 따라 개별 로그 파일의 최대 크기가 결정됩니다.

Postgres 기본값

postgres

`log_statement<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-STATEMENT>`_

FALSE

기록되는 SQL 문을 제어합니다.

ddl

postgres

`log_statement_sample_rate<https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-STATEMENT-SAMPLE-RATE>`_

FALSE

기록될 기간이 log_min_duration_sample을 초과하는 문의 비율을 결정합니다.

Postgres 기본값

postgres

log_temp_files

FALSE

임시 파일 이름과 크기의 로깅을 제어합니다.

10MB

postgres

log_transaction_sample_rate

FALSE

다른 이유로 기록된 문 외에도 모든 문이 기록되는 트랜잭션의 비율을 설정합니다.

Postgres 기본값

postgres

logical_decoding_work_mem

FALSE

논리적 디코딩에서 사용할 최대 메모리 양을 지정합니다.

Postgres 기본값

postgres

maintenance_work_mem

FALSE

VACUUM, CREATE INDEX 및 ALTER TABLE ADD FOREIGN KEY와 같은 유지 관리 작업에서 사용할 최대 메모리 양을 지정합니다.

TOTAL_MEMORY * 0.4

postgres

`max_connections<https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-MAX-CONNECTIONS>`_

TRUE

데이터베이스 서버에 대한 최대 동시 연결 수를 결정합니다.

500

postgres

`max_locks_per_transaction<https://www.postgresql.org/docs/current/runtime-config-locks.html#GUC-MAX-LOCKS-PER-TRANSACTION>`_

TRUE

각 트랜잭션에 할당된 평균 오브젝트 잠금 수를 제어합니다.

Postgres 기본값

postgres

max_logical_replication_workers

TRUE

논리적 복제 작업자의 최대 수를 지정합니다.

Postgres 기본값

postgres

max_parallel_maintenance_workers

FALSE

단일 유틸리티 명령으로 시작할 수 있는 최대 병렬 작업자 수를 설정합니다.

Postgres 기본값

postgres

max_parallel_workers

FALSE

클러스터가 병렬 작업을 위해 지원할 수 있는 최대 작업자 수를 설정합니다.

NUM_CPUS

postgres

max_parallel_workers_per_gather

FALSE

단일 Gather 또는 Gather Merge 노드에서 시작할 수 있는 최대 워커 수를 설정합니다.

NUM_CPUS

postgres

`max_replication_slots<https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-MAX-REPLICATION-SLOTS>`_

TRUE

서버에서 지원할 수 있는 최대 복제 슬롯 수를 지정합니다.

10

postgres

`max_slot_wal_keep_size<https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-MAX-SLOT-WAL-KEEP-SIZE>`_

FALSE

복제 슬롯이 검사점 시점에 pg_wal 디렉터리에 보존할 수 있는 WAL 파일의 최대 크기를 지정합니다.

STORAGE_GB * 0.1

postgres

max_standby_archive_delay

FALSE

대기 서버가 곧 적용될 WAL 항목과 충돌하는 대기 쿼리를 취소하기 전에 대기해야 하는 시간을 결정합니다.

Postgres 기본값

postgres

`max_standby_streaming_delay<https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-MAX-STANDBY-STREAMING-DELAY>`_

FALSE

대기 서버가 곧 적용될 WAL 항목과 충돌하는 대기 쿼리를 취소하기 전에 대기해야 하는 시간을 결정합니다.

Postgres 기본값

postgres

max_wal_senders

TRUE

대기 서버 또는 스트리밍 기본 백업 클라이언트의 최대 동시 연결 수를 지정합니다.

10

postgres

`max_wal_size<https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-MAX-WAL-SIZE>`_

FALSE

자동 검사점 중 WAL이 증가할 수 있는 최대 크기입니다.

MIN(10GB, STORAGE_GB * 0.1)

postgres

`max_worker_processes<https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-MAX-WORKER-PROCESSES>`_

TRUE

클러스터가 지원할 수 있는 최대 백그라운드 프로세스 수를 설정합니다.

100

postgres

pg_stat_statements.max

TRUE

추적되는 최대 문의 수입니다.

Postgres 기본값

postgres

pg_stat_statements.track

FALSE

추적해야 하는 문을 제어합니다.

Postgres 기본값

postgres

pg_stat_statements.track_utility

FALSE

유틸리티 명령을 추적해야 합니다. 유틸리티 명령은 SELECT, INSERT, UPDATE, DELETE 및 MERGE 이외의 모든 명령입니다.

Postgres 기본값

postgres

random_page_cost

FALSE

순차적으로 가져오지 않는 디스크 페이지의 비용에 대한 플래너의 추정치를 설정합니다.

1.1

postgres

session_preload_libraries

FALSE

연결 시작 시 미리 로드할 하나 이상의 공유 라이브러리를 지정합니다.

Postgres 기본값

postgres

statement_timeout

FALSE

지정된 시간보다 오래 걸리는 모든 문을 중단합니다.

Postgres 기본값

postgres

synchronous_commit

FALSE

데이터베이스 서버가 클라이언트에 “성공” 표시를 반환하기 전에 완료해야 하는 WAL 처리량을 지정합니다.

로컬

postgres

syslog_split_messages

FALSE

syslog로 전송된 메시지를 1024바이트에 맞게 줄로 분할합니다.

Postgres 기본값

postgres

tcp_keepalives_count

FALSE

클라이언트에 대한 서버의 연결이 비활성 상태로 간주되기 전에 손실될 수 있는 TCP 연결 유지 메시지의 수를 지정합니다.

4

postgres

tcp_keepalives_idle

FALSE

네트워크 활동이 없는 시간 동안 운영 체제가 클라이언트에 TCP 연결 유지 메시지를 전송해야 시간을 지정합니다.

2

postgres

temp_file_limit

FALSE

프로세스가 정렬 및 해시 임시 파일과 같은 임시 파일이나 보류된 커서의 저장소 파일에 사용할 수 있는 최대 디스크 공간을 지정합니다.

MIN(2000GB, STORAGE_GB * 0.25)

postgres

track_activity_query_size

TRUE

pg_stat_activity.query 필드의 각 활성 세션에 대해 현재 실행 중인 명령의 텍스트를 저장하기 위해 예약된 메모리입니다.

Postgres 기본값

postgres

track_commit_timestamp

TRUE

트랜잭션의 커밋 시간을 기록합니다.

Postgres 기본값

postgres

`wal_keep_size<https://postgresqlco.nf/doc/en/param/wal_keep_size/>`_

FALSE

대기 서버가 스트리밍 복제를 위해 파일을 가져와야 하는 경우를 대비하여 pg_wal 디렉터리에 보관된 과거 WAL 파일의 최소 크기를 지정합니다.

Postgres 기본값

postgres

wal_sender_timeout

FALSE

WAL 복제에 대한 최대 대기 시간을 설정합니다.

Postgres 기본값

postgres

work_mem

FALSE

임시 디스크 파일에 작성하기 전에 쿼리 작업(예: 정렬 또는 해시 테이블)에서 사용할 기본 최대 메모리 양을 설정합니다.

(TOTAL_MEMORY * 0.75)/(NUM_CORES * 8)