Snowflake Postgres-Servereinstellungen

In der folgenden Tabelle sind die Parameter aufgeführt, die für die Postgres-Serverkomponente von Snowflake Postgres-Instanzen festgelegt werden können. Der Name jeder Einstellung ist mit seiner Postgres-Dokumentation verlinkt.

Wenn in der Spalte „Standard“ der Eintrag „Postgres default“ angezeigt wird, verwenden Snowflake-Postgres-Instanzen den Standardwert von Postgres. Dies kann sich je nach Hauptversion unterscheiden.

Unter Erstellen einer Snowflake Postgres-Instanz finden Sie Details zum Festlegen von Werten für diese Postgres-Servereinstellungen beim Erstellen von Snowflake Postgres-Instanzen.

Tipp

Um die Dokumentation eines Parameters für eine bestimmte Hauptversion anzuzeigen, ändern Sie das Wort „current“ in der Hyperlink-Adresse in die Ziel-Hauptversion. Zum Beispiel diese Hyperlink-Adresse für die Einstellung postgres:work_mem:

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

wird hierzu, um die Postgres 17-Dokumentation aufzurufen:

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

Komponente

Name

Erfordert Neustart

Beschreibung

Standard

pgbouncer

autodb_idle_timeout

FALSE

Wenn die automatisch (anhand von „*“) erstellten Datenbankpools so viele Sekunden nicht mehr genutzt wurden, werden sie freigegeben.

3600

pgbouncer

default_pool_size

FALSE

Wie viele Serververbindungen pro Benutzer/Datenbank-Paar zugelassen werden sollen

497

pgbouncer

ignore_startup_parameters

FALSE

Ignoriert Parameter-Startpakete (z. B. options, extra_float_digits).

client_encoding,datestyle,timezone,standard_conforming_strings,extra_float_digits

pgbouncer

max_prepared_statements

FALSE

Anzahl der vorbereiteten Anweisungen, die für eine einzelne Serververbindung aktiv bleiben

250

pgbouncer

pool_mode

FALSE

Gibt an, wann eine Serververbindung von anderen Clients wiederverwendet werden kann.

transaction

pgbouncer

server_idle_timeout

Wenn eine Serververbindung länger als die angegebene Anzahl von Sekunden inaktiv war, wird sie geschlossen.

FALSE

60

postgres

auto_explain.log_analyze

FALSE

Führt zu einer EXPLAIN ANALYZE-Ausgabe und nicht nur EXPLAIN-Ausgabe, die gedruckt wird, wenn ein Ausführungsplan protokolliert wird.

Standard für Postgres

postgres

auto_explain.log_buffers

FALSE

Steuert, ob beim Protokollieren eines Ausführungsplans Statistiken zur Puffernutzung gedruckt werden.

Standard für Postgres

postgres

auto_explain.log_format

FALSE

Wählt das zu verwendende EXPLAIN-Ausgabeformat aus.

Standard für Postgres

postgres

auto_explain.log_min_duration

FALSE

Die minimale Ausführungszeit der Anweisung in Millisekunden, die dazu führt, dass der Plan der Anweisung protokolliert wird.

Standard für Postgres

postgres

auto_explain.log_nested_statements

FALSE

Wenn verschachtelte -Anweisungen (innerhalb einer Funktion ausgeführte Anweisungen) bei der Protokollierung berücksichtigt werden.

Standard für Postgres

postgres

auto_explain.log_timing

FALSE

Steuert, ob beim Protokollieren eines Ausführungsplans Zeitinformationen pro Knoten gedruckt werden.

Standard für Postgres

postgres

auto_explain.log_triggers

FALSE

Bewirkt, dass Trigger-Ausführungsstatistiken enthalten sind, wenn ein Ausführungsplan protokolliert wird.

Standard für Postgres

postgres

auto_explain.log_verbose

FALSE

Steuert, ob beim Protokollieren eines Ausführungsplans ausführliche Details gedruckt werden.

Standard für Postgres

postgres

auto_explain.sample_rate

FALSE

Bewirkt, dass auto_explain nur einen Bruchteil der Anweisungen in jeder Sitzung erklärt.

Standard für Postgres

postgres

autovacuum_analyze_scale_factor

FALSE

Gibt einen Bruchteil der Tabellengröße an, der zu „autovacuum_analyze_threshold“ hinzugefügt werden soll, wenn entschieden wird, ob ANALYZE ausgelöst werden soll.

Standard für Postgres

postgres

autovacuum_freeze_max_age

TRUE

Gibt das maximale Alter (in Transaktionen) für die Transaktions-ID einer Tabelle an, bevor ein VACUUM-Vorgang erzwungen wird, um ein Wraparound der Transaktions-ID in der Tabelle zu verhindern.

Standard für Postgres

postgres

autovacuum_vacuum_cost_delay

FALSE

Gibt den Wert der Kostenverzögerung an, der für automatische VACUUM-Vorgänge verwendet wird. Wenn -1 angegeben ist, wird der reguläre Wert für vacuum_cost_delay verwendet.

Standard für Postgres

postgres

autovacuum_vacuum_cost_limit

FALSE

Gibt den Wert der Kostenbeschränkung an, der für automatische VACUUM-Vorgänge verwendet wird.

Standard für Postgres

postgres

autovacuum_vacuum_insert_scale_factor

FALSE

Gibt einen Bruchteil der Tabellengröße an, der zu „autovacuum_vacuum_insert_threshold“ hinzugefügt werden soll, wenn entschieden wird, ob VACUUM ausgelöst werden soll.

Standard für Postgres

postgres

autovacuum_vacuum_insert_threshold

FALSE

Gibt die Anzahl der eingefügten Tupel an, die zum Auslösen von VACUUM in einer beliebigen Tabelle benötigt werden.

Standard für Postgres

postgres

autovacuum_vacuum_scale_factor

FALSE

Gibt einen Bruchteil der Tabellengröße an, der zu „autovacuum_vacuum_threshold“ hinzugefügt werden soll, wenn entschieden wird, ob VACUUM ausgelöst werden soll.

Standard für Postgres

postgres

checkpoint_completion_target

FALSE

Gibt das Ziel der Checkpoint-Vervollständigung als Bruchteil der Gesamtzeit zwischen den Checkpoints an.

Standard für Postgres

postgres

checkpoint_timeout

FALSE

Maximale Zeit zwischen automatischen WAL-Checkpoints.

Standard für Postgres

postgres

checkpoint_warning

FALSE

Schreibt eine Meldung in das Serverprotokoll, wenn -Checkpoints, die durch das Auffüllen von WAL-Segmentdateien entstehen, näher beieinander liegen als diese Zeitspanne.

Standard für Postgres

postgres

default_statistics_target

FALSE

Legt das Standard-Statistikziel für Tabellenspalten fest, ohne dass ein spaltenspezifisches Ziel mit ALTER TABLE SET STATISTICS festgelegt wurde.

Standard für Postgres

postgres

default_text_search_config

FALSE

Wählt die Textsuchkonfiguration aus, die von den Varianten der Textsuchfunktionen verwendet wird, die kein explizites Argument haben, das die Konfiguration angibt.

Standard für Postgres

postgres

default_transaction_read_only

FALSE

Eine schreibgeschützte SQL-Transaktion kann keine nicht-temporären Tabellen ändern.

off

postgres

hot_standby_feedback

FALSE

Gibt an, ob Hot Standby Feedback über Abfragen, die derzeit auf dem Standby ausgeführt werden, an den primären oder den vorgelagerten Standby sendet.

on

postgres

idle_in_transaction_session_timeout

FALSE

Beendet jede Sitzung, die innerhalb einer offenen Transaktion länger als die angegebene Zeit inaktiv ist.

Standard für Postgres

postgres

intervalstyle

FALSE

Legt das Anzeigeformat für den Intervallwert fest.

Standard für Postgres

postgres

jit

FALSE

Aktiviert die JIT-Unterstützung.

Standard für Postgres

postgres

lock_timeout

FALSE

Bricht jede Anweisung ab, die länger als die angegebene Zeit wartet, während sie versucht, eine Sperre zu erhalten.

Standard für Postgres

postgres

log_autovacuum_min_duration

FALSE

Bewirkt, dass jede von Autovacuum ausgeführte Aktion protokolliert wird, wenn sie mindestens die angegebene Zeit lang ausgeführt wurde.

Standard für Postgres

postgres

log_connections

FALSE

Gibt eine Zeile an die Serverprotokolle aus, in der jede erfolgreiche Verbindung aufgeführt ist.

Standard für Postgres

postgres

log_destination

FALSE

Legt die gewünschten Protokollziele fest.

syslog,stderr

postgres

log_disconnections

FALSE

Bewirkt, dass die Beendigung von Sitzungen protokolliert wird. Die Protokollausgabe liefert ähnliche Informationen wie „log_connections“ sowie die Dauer der Sitzung.

Standard für Postgres

postgres

log_duration

FALSE

Bewirkt, dass die Dauer jeder abgeschlossenen Anweisung protokolliert wird.

Standard für Postgres

postgres

log_line_prefix

FALSE

Gibt eine Zeichenfolge im printf-Stil an, die am Anfang jeder Protokollzeile ausgegeben wird.

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

postgres

log_lock_waits

FALSE

Steuert, ob eine Protokollmeldung erzeugt wird, wenn eine Sitzung länger als Deadlock_timeout wartet, um eine Sperre zu erhalten.

on

postgres

log_min_duration_sample

FALSE

Ermöglicht Sampling der Dauer von abgeschlossenen Anweisungen, die mindestens die angegebene Zeit lang ausgeführt wurden.

Standard für Postgres

postgres

log_min_duration_statement

FALSE

Bewirkt, dass die Dauer jeder abgeschlossenen Anweisung protokolliert wird, wenn die Anweisung mindestens die angegebene Zeit lang ausgeführt wurde.

2s

postgres

log_min_messages

FALSE

Steuert, welche Meldungsstufen in das Serverprotokoll geschrieben werden.

Hinweis:

postgres

log_rotation_size

FALSE

Dies bestimmt die maximale Größe einer einzelnen Protokolldatei.

Standard für Postgres

postgres

log_statement

FALSE

Steuert, welche SQL-Anweisungen protokolliert werden.

ddl

postgres

log_statement_sample_rate

FALSE

Ermittelt den Anteil der Anweisungen, deren Dauer log_min_dauer_sample überschreitet, die protokolliert werden.

Standard für Postgres

postgres

log_temp_files

FALSE

Steuert die Protokollierung von Namen und Größen von temporären Dateien.

10MB

postgres

log_transaction_sample_rate

FALSE

Legt den Anteil der Transaktionen fest, deren Anweisungen alle protokolliert werden, zusätzlich zu den Anweisungen, die aus anderen Gründen protokolliert wurden.

Standard für Postgres

postgres

logical_decoding_work_mem

FALSE

Gibt die maximale Menge an Arbeitsspeicher an, die bei der logischen Dekodierung verwendet werden soll.

Standard für Postgres

postgres

maintenance_work_mem

FALSE

Gibt die maximale Menge an Arbeitsspeicher an, der von Wartungsvorgängen wie VACUUM, CREATE INDEXund ALTER TABLE ADD FOREIGN KEY verwendet werden kann.

TOTAL_MEMORY * 0,4

postgres

max_connections

TRUE

Ermittelt die maximale Anzahl gleichzeitiger Verbindungen zum Datenbankserver.

500

postgres

max_locks_per_transaction

TRUE

Steuert die durchschnittliche Anzahl der für jede Transaktion zugewiesenen Objektsperren.

Standard für Postgres

postgres

max_logical_replication_workers

TRUE

Gibt die maximale Anzahl der logischen Replikations-Worker an.

Standard für Postgres

postgres

max_parallel_maintenance_workers

FALSE

Legt die maximale Anzahl paralleler Worker fest, die durch einen einzelnen Dienstprogrammbefehl gestartet werden können.

Standard für Postgres

postgres

max_parallel_workers

FALSE

Legt die maximale Anzahl von Workern fest, die der Cluster für parallele Vorgänge unterstützen kann.

NUM_CPUS

postgres

max_parallel_workers_per_gather

FALSE

Legt die maximale Anzahl von Workern fest, die von einem einzelnen Sammel- oder Sammelknoten gestartet werden können.

NUM_CPUS

postgres

max_replication_slots

TRUE

Gibt die maximale Anzahl von Replikations-Slots an, die der Server unterstützen kann.

10

postgres

max_slot_wal_keep_size

FALSE

Gibt die maximale Größe von WAL-Dateien an, die Replikations-Slots im pg_wal-Verzeichnis zur Checkpoint-Zeit beibehalten dürfen.

STORAGE_GB * 0,1

postgres

max_standby_archive_delay

FALSE

Legt fest, wie lange der Standby-Server warten soll, bevor er Standby-Abfragen abbricht, die mit bald anzuwendenden WAL-Einträgen in Konflikt stehen.

Standard für Postgres

postgres

max_standby_streaming_delay

FALSE

Legt fest, wie lange der Standby-Server warten soll, bevor er Standby-Abfragen abbricht, die mit bald anzuwendenden WAL-Einträgen in Konflikt stehen.

Standard für Postgres

postgres

max_wal_senders

TRUE

Gibt die maximale Anzahl gleichzeitiger Verbindungen von Standardservern oder Streaming-Basissicherungsclients an.

10

postgres

max_wal_size

FALSE

Maximale Größe für das WAL-Wachstum während automatischer Checkpoints.

MIN(10GB, STORAGE_GB * 0,1)

postgres

max_worker_processes

TRUE

Legt die maximale Anzahl der Hintergrundprozesse fest, die der Cluster unterstützen kann.

100

postgres

pg_stat_statements.max

TRUE

Maximale Anzahl der verfolgten Anweisungen.

Standard für Postgres

postgres

pg_stat_statements.track

FALSE

Steuern, welche Anweisungen verfolgt werden sollen.

Standard für Postgres

postgres

pg_stat_statements.track_utility

FALSE

Es sollen Befehle des Dienstprogramms verfolgt werden. Dienstprogrammbefehle sind alle außer SELECT, INSERT, UPDATE, DELETEund MERGE.

Standard für Postgres

postgres

random_page_cost

FALSE

Legt die Schätzung des Planers für die Kosten einer nicht sequenziell abgerufenen Festplattenseite fest.

1.1

postgres

session_preload_libraries

FALSE

Gibt eine oder mehrere freigegebene Bibliotheken an, die beim Starten der Verbindung vorab geladen werden sollen.

Standard für Postgres

postgres

statement_timeout

FALSE

Bricht alle Anweisungen ab, die mehr als die angegebene Zeit in Anspruch nehmen.

Standard für Postgres

postgres

synchronous_commit

FALSE

Gibt an, wie viel der WAL-Verarbeitung abgeschlossen sein muss, bevor der Datenbankserver eine Erfolgsmeldung an den Client zurückgibt.

Gebietsschema

postgres

syslog_split_messages

FALSE

Meldungen, die an syslog gesendet werden, nach Zeilen aufteilen, damit sie in 1.024 Bytes passen

Standard für Postgres

postgres

tcp_keepalives_count

FALSE

Gibt die Anzahl der an TCP-Keepalive-Meldungen an, die verloren gehen können, bevor die Verbindung des Servers zum Client als unterbrochen gilt.

4

postgres

tcp_keepalives_idle

FALSE

Gibt die Zeit ohne Netzwerkaktivität an, nach der das Betriebssystem eine TCP-Keepalive-Meldung an den Client senden soll.

2

postgres

temp_file_limit

FALSE

Gibt die maximale Menge an Festplattenspeicher an, die ein Prozess für temporäre Dateien verwenden kann, z. B. für das Sortieren und Hashen von temporären Dateien oder die Speicherdatei für einen Host-Cursor.

MIN(2000GB, STORAGE_GB * 0,25)

postgres

track_activity_query_size

TRUE

Speicher, der zum Speichern des Textes des aktuell ausgeführten Befehls für jede aktive Sitzung im Feld pg_stat_ activation.query reserviert ist.

Standard für Postgres

postgres

track_commit_timestamp

TRUE

Commit-Zeit von Transaktionen erfassen.

Standard für Postgres

postgres

wal_keep_size

FALSE

Gibt die Mindestgröße der älteren WAL-Dateien an, die im Verzeichnis „pg_wal“ gespeichert werden, falls ein Standby-Server diese für die Streaming-Replikation abrufen muss.

Standard für Postgres

postgres

wal_sender_timeout

FALSE

Legt die maximale Zeit fest, die auf die WAL-Replikation gewartet werden soll.

Standard für Postgres

postgres

work_mem

FALSE

Legt die maximale Basismenge an Arbeitsspeicher fest, die von einem Abfragevorgang (z. B. einer Sortierung oder einer Hash-Tabelle) verwendet werden soll, bevor in temporäre Festplattendateien geschrieben wird.

(TOTAL_MEMORY * 0,75)/ (NUM_CORES * 8)