Snowflake Postgres 서버 설정

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

기본값 열에 “Postgres 기본값”이 표시되는 경우 Snowflake Postgres 인스턴스는 Postgres의 기본값을 사용합니다. 이는 주 버전별로 다를 수 있습니다.

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

특정 주 버전에 대한 매개 변수 설명서를 보려면 하이퍼링크 주소에서 “current”라는 단어를 대상 주 버전으로 변경합니다. 예를 들어, postgres:work_mem 설정에 대한 이 하이퍼링크 주소는 다음과 같습니다.

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

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)