Paramètres du serveur Snowflake Postgres

Le tableau ci-dessous détaille les paramètres qui peuvent être définis pour le composant du serveur Postgres des instances Snowflake Postgres. Le nom de chaque paramètre est lié par un lien hypertexte à sa documentation Postgres.

Lorsque « Postgres par défaut » apparaît dans la colonne Par défaut, les instances Snowflake Postgres utilisent la valeur par défaut de Postgres. Celle-ci peut varier en fonction de la version majeure.

Consultez Création d’une instance Snowflake Postgres pour plus de détails sur la définition des valeurs de ces paramètres de serveur Postgres lors de la création d’instances Snowflake Postgres.

Astuce

Pour voir la documentation d’un paramètre pour une version majeure spécifique, remplacez le mot « current » dans l’adresse du lien hypertexte par la version majeure cible. Par exemple, cette adresse de lien hypertexte pour le paramètre postgres:work_mem :

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

devient ce qui suit pour consulter sa documentation Postgres 17 :

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

Composant

Nom

Nécessite un redémarrage

Description

Par défaut

pgbouncer

autodb_idle_timeout

FALSE

Si les pools de bases de données automatiquement créés (via « * ») n’ont pas été utilisés pendant ce nombre de secondes, ils sont désactivés.

3600

pgbouncer

default_pool_size

FALSE

Nombre de connexions serveur à autoriser par paire utilisateur/base de données.

497

pgbouncer

ignore_startup_parameters

FALSE

Ignore les paquets de démarrage des paramètres (par exemple, options,extra_float_digits).

client_encoding,datestyle,timezone,standard_conforming_strings,extra_float_digits

pgbouncer

max_prepared_statements

FALSE

Nombre d’instructions préparées maintenues actives sur une seule connexion serveur

250

pgbouncer

pool_mode

FALSE

Indique lorsqu’une connexion serveur peut être réutilisée par d’autres clients.

transaction

pgbouncer

server_idle_timeout

Si une connexion serveur a été inactive pendant un nombre de secondes supérieur à celui-ci, elle sera fermée.

FALSE

60

postgres

auto_explain.log_analyze

FALSE

Provoque l’affichage de la sortie EXPLAIN ANALYZE, plutôt que de la sortie EXPLAIN, lorsqu’un plan d’exécution est journalisé.

Postgres par défaut

postgres

auto_explain.log_buffers

FALSE

Contrôle si les statistiques d’utilisation de la mémoire tampon sont affichées lorsqu’un plan d’exécution est journalisé.

Postgres par défaut

postgres

auto_explain.log_format

FALSE

Sélectionne le format de sortie EXPLAIN à utiliser.

Postgres par défaut

postgres

auto_explain.log_min_duration

FALSE

Temps minimum d’exécution de l’instruction, en millisecondes, qui entraînera la journalisation du plan de l’instruction.

Postgres par défaut

postgres

auto_explain.log_nested_statements

FALSE

Provoque la prise en compte des instructions imbriquées (instructions exécutées à l’intérieur d’une fonction) pour la journalisation.

Postgres par défaut

postgres

auto_explain.log_timing

FALSE

Contrôle si les informations de chronométrage par nœud sont affichées lorsqu’un plan d’exécution est journalisé.

Postgres par défaut

postgres

auto_explain.log_triggers

FALSE

Provoque l’inclusion des statistiques d’exécution du déclencheur lorsqu’un plan d’exécution est journalisé.

Postgres par défaut

postgres

auto_explain.log_verbose

FALSE

Contrôle si des détails verbaux sont affichés lorsqu’un plan d’exécution est journalisé.

Postgres par défaut

postgres

auto_explain.sample_rate

FALSE

Conduit auto_explain à n’expliquer qu’une partie des instructions de chaque session.

Postgres par défaut

postgres

autovacuum_analyze_scale_factor

FALSE

Spécifie une partie de la taille de la table à ajouter à autovacuum_analyze_threshold lors de la décision de déclencher une ANALYZE.

Postgres par défaut

postgres

autovacuum_freeze_max_age

TRUE

Spécifie l’âge maximal (en transactions) que l’ID de transaction d’une table peut atteindre avant qu’une opération VACUUM ne soit forcée pour empêcher le bouclage de l’ID de transaction dans la table.

Postgres par défaut

postgres

autovacuum_vacuum_cost_delay

FALSE

Spécifie la valeur du délai de coût qui sera utilisée dans les opérations VACUUM automatiques. Si -1 est spécifié, la valeur vacuum_cost_delay régulière sera utilisée.

Postgres par défaut

postgres

autovacuum_vacuum_cost_limit

FALSE

Spécifie la valeur de limite de coût qui sera utilisée dans les opérations VACUUM automatiques.

Postgres par défaut

postgres

autovacuum_vacuum_insert_scale_factor

FALSE

Spécifie une partie de la taille de la table à ajouter à autovacuum_vacuum_insert_threshold lors de la décision de déclencher un VACUUM.

Postgres par défaut

postgres

autovacuum_vacuum_insert_threshold

FALSE

Spécifie le nombre de tuples insérés nécessaires pour déclencher un VACUUM dans n’importe quelle table.

Postgres par défaut

postgres

autovacuum_vacuum_scale_factor

FALSE

Spécifie une partie de la taille de la table à ajouter à autovacuum_vacuum_threshold lors de la décision de déclencher un VACUUM.

Postgres par défaut

postgres

checkpoint_completion_target

FALSE

Spécifie la cible d’achèvement du point de contrôle, sous forme de fraction du temps total entre les points de contrôle.

Postgres par défaut

postgres

checkpoint_timeout

FALSE

Temps maximum entre les points de contrôle WAL automatiques.

Postgres par défaut

postgres

checkpoint_warning

FALSE

Écrit un message dans le journal du serveur si les points de contrôle causés par le remplissage des fichiers de segment WAL ont lieu à des intervalles plus rapprochés que cette durée.

Postgres par défaut

postgres

default_statistics_target

FALSE

Définit la cible de statistiques par défaut pour les colonnes de la table sans cible spécifique à la colonne définie via ALTER TABLE SET STATISTICS.

Postgres par défaut

postgres

default_text_search_config

FALSE

Sélectionne la configuration de recherche de texte utilisée par les variantes des fonctions de recherche de texte qui ne disposent pas d’argument explicite spécifiant la configuration.

Postgres par défaut

postgres

default_transaction_read_only

FALSE

Une transaction SQL en lecture seule ne peut pas modifier des tables qui ne sont pas temporaires.

inactif

postgres

hot_standby_feedback

FALSE

Spécifie si un système de secours actif enverra ou non des informations au système principal ou au système de secours en amont concernant les requêtes en cours d’exécution sur le système de secours.

actif

postgres

idle_in_transaction_session_timeout

FALSE

Met fin à toute session qui a été inactive dans une transaction ouverte pendant une durée supérieure à la durée spécifiée.

Postgres par défaut

postgres

intervalstyle

FALSE

Définit le format d’affichage de la valeur d’intervalle.

Postgres par défaut

postgres

jit

FALSE

Active l’assistance JIT.

Postgres par défaut

postgres

lock_timeout

FALSE

Annule toute instruction qui attend plus longtemps que la durée spécifiée lors de la tentative d’acquisition d’un verrou.

Postgres par défaut

postgres

log_autovacuum_min_duration

FALSE

Provoque la journalisation de chaque action exécutée par autovacuum si celle-ci a duré au moins le temps spécifié.

Postgres par défaut

postgres

log_connections

FALSE

Affiche une ligne dans les journaux du serveur détaillant chaque connexion réussie.

Postgres par défaut

postgres

log_destination

FALSE

Définit les destinations souhaitées pour les journaux.

syslog,stderr

postgres

log_disconnections

FALSE

Provoque la journalisation des terminaisons de session. La sortie du journal fournit des informations similaires à celles de log_connections, ainsi que la durée de la session.

Postgres par défaut

postgres

log_duration

FALSE

Provoque la journalisation de la durée de chaque instruction terminée.

Postgres par défaut

postgres

log_line_prefix

FALSE

Spécifie une chaîne de caractères de type printf qui est affichée au début de chaque ligne du journal.

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

postgres

log_lock_waits

FALSE

Contrôle si un message de journal est généré lorsqu’une session attend plus longtemps que deadlock_timeout pour acquérir un verrou.

actif

postgres

log_min_duration_sample

FALSE

Permet d’échantillonner la durée des instructions terminées qui ont duré au moins le temps spécifié.

Postgres par défaut

postgres

log_min_duration_statement

FALSE

Provoque la journalisation de la durée de chaque instruction terminée si celle-ci a duré pendant au moins le temps spécifié.

2s

postgres

log_min_messages

FALSE

Contrôle les niveaux de messages écrits dans le journal du serveur.

notice

postgres

log_rotation_size

FALSE

Ceci détermine la taille maximale d’un fichier de journal individuel.

Postgres par défaut

postgres

log_statement

FALSE

Contrôle les instructions SQL à journaliser.

ddl

postgres

log_statement_sample_rate

FALSE

Détermine la partie des instructions dont la durée dépasse log_min_duration_sample qui sera journalisée.

Postgres par défaut

postgres

log_temp_files

FALSE

Contrôle la journalisation des noms et des tailles de fichiers temporaires.

10MB

postgres

log_transaction_sample_rate

FALSE

Définit la partie des transactions dont les instructions sont toutes journalisées, en plus des instructions journalisées pour d’autres raisons.

Postgres par défaut

postgres

logical_decoding_work_mem

FALSE

Spécifie la quantité maximale de mémoire à utiliser par le décodage logique.

Postgres par défaut

postgres

maintenance_work_mem

FALSE

Spécifie la quantité maximale de mémoire à utiliser par les opérations de maintenance, comme VACUUM, CREATE INDEX et ALTER TABLE ADD FOREIGN KEY.

TOTAL_MEMORY * 0.4

postgres

max_connections

TRUE

Détermine le nombre maximal de connexions simultanées au serveur de base de données.

500

postgres

max_locks_per_transaction

TRUE

Contrôle le nombre moyen de verrous d’objet attribués à chaque transaction.

Postgres par défaut

postgres

max_logical_replication_workers

TRUE

Spécifie le nombre maximal de processus de réplication logique.

Postgres par défaut

postgres

max_parallel_maintenance_workers

FALSE

Définit le nombre maximal de processus parallèles pouvant être démarrés par une seule commande utilitaire.

Postgres par défaut

postgres

max_parallel_workers

FALSE

Définit le nombre maximal de processus que le cluster peut prendre en charge pour des opérations parallèles.

NUM_CPUS

postgres

max_parallel_workers_per_gather

FALSE

Définit le nombre maximal de processus qui peuvent être démarrés par un seul nœud Gather ou Gather Merge.

NUM_CPUS

postgres

max_replication_slots

TRUE

Spécifie le nombre maximal d’emplacements de réplication que le serveur peut prendre en charge.

10

postgres

max_slot_wal_keep_size

FALSE

Spécifie la taille maximale des fichiers WAL que les emplacements de réplication sont autorisés à conserver dans le répertoire pg_wal au moment du point de contrôle.

STORAGE_GB * 0.1

postgres

max_standby_archive_delay

FALSE

Détermine la durée pendant laquelle le serveur de secours doit attendre avant d’annuler les requêtes de secours qui entrent en conflit avec les entrées WAL sur le point d’être appliquées.

Postgres par défaut

postgres

max_standby_streaming_delay

FALSE

Détermine la durée pendant laquelle le serveur de secours doit attendre avant d’annuler les requêtes de secours qui entrent en conflit avec les entrées WAL sur le point d’être appliquées.

Postgres par défaut

postgres

max_wal_senders

TRUE

Spécifie le nombre maximal de connexions simultanées à partir de serveurs de secours ou de clients de sauvegarde de base en continu.

10

postgres

max_wal_size

FALSE

Taille maximale autorisée pour la croissance des WAL lors des points de contrôle automatiques.

MIN(10GB, STORAGE_GB * 0.1)

postgres

max_worker_processes

TRUE

Définit le nombre maximal de processus d’arrière-plan que le cluster peut prendre en charge.

100

postgres

pg_stat_statements.max

TRUE

Nombre maximal d’instructions suivies.

Postgres par défaut

postgres

pg_stat_statements.track

FALSE

Contrôle les instructions à suivre.

Postgres par défaut

postgres

pg_stat_statements.track_utility

FALSE

Indique si les commandes utilitaires doivent être suivies. Les commandes utilitaires sont toutes celles autres que SELECT, INSERT, UPDATE, DELETE et MERGE.

Postgres par défaut

postgres

random_page_cost

FALSE

Définit l’estimation par le planificateur du coût d’une page de disque non récupérée de manière séquentielle.

1.1

postgres

session_preload_libraries

FALSE

Spécifie une ou plusieurs bibliothèques partagées qui doivent être préchargées au début de la connexion.

Postgres par défaut

postgres

statement_timeout

FALSE

Annule toute instruction qui prend plus de temps que la durée spécifiée.

Postgres par défaut

postgres

synchronous_commit

FALSE

Spécifie la quantité de traitement WAL qui doit être effectuée avant que le serveur de base de données renvoie une indication de « réussite » au client.

local

postgres

syslog_split_messages

FALSE

Divise les messages envoyés à syslog par lignes pour les adapter à 1 024 octets

Postgres par défaut

postgres

tcp_keepalives_count

FALSE

Spécifie le nombre de messages TCP keepalive qui peuvent être perdus avant que la connexion serveur au client ne soit considérée comme interrompue.

4

postgres

tcp_keepalives_idle

FALSE

Spécifie le temps d’inactivité réseau après lequel le système d’exploitation doit envoyer un message TCP keepalive vers le client.

2

postgres

temp_file_limit

FALSE

Spécifie l’espace disque maximal qu’un processus peut utiliser pour les fichiers temporaires, tels que les fichiers temporaires de tri et de hachage, ou le fichier de stockage pour un curseur maintenu.

MIN(2000GB, STORAGE_GB * 0.25)

postgres

track_activity_query_size

TRUE

Mémoire réservée pour stocker le texte de la commande en cours d’exécution pour chaque session active, pour le champ pg_stat_activity.query.

Postgres par défaut

postgres

track_commit_timestamp

TRUE

Enregistre le temps de validation des transactions.

Postgres par défaut

postgres

wal_keep_size

FALSE

Spécifie la taille minimale des fichiers WAL historiques conservés dans le répertoire pg_wal, au cas où un serveur de secours aurait besoin de les récupérer pour la réplication en continu.

Postgres par défaut

postgres

wal_sender_timeout

FALSE

Définit le temps d’attente maximal pour la réplication des WAL.

Postgres par défaut

postgres

work_mem

FALSE

Définit la quantité maximale de mémoire de base à utiliser par une opération de requête (telle qu’un tri ou une table de hachage) avant d’écrire dans des fichiers de disque temporaires.

(TOTAL_MEMORY * 0.75)/ (NUM_CORES * 8)