Configurações do servidor Snowflake Postgres

A tabela abaixo detalha os parâmetros que podem ser definidos para o componente do servidor Postgres das instâncias do Snowflake Postgres. O nome de cada configuração está vinculado à respectiva documentação do Postgres.

Quando «Padrão do Postgres» aparece na coluna Padrão, as instâncias do Snowflake Postgres usam o valor padrão do Postgres. Isso pode variar conforme a versão principal.

Consulte Criando uma instância do Snowflake Postgres para obter detalhes sobre como definir valores para essas configurações do servidor Postgres ao criar instâncias do Snowflake Postgres.

Dica

Para ver a documentação de um parâmetro referente a uma versão principal específica, altere a palavra «current» no endereço do hiperlink para a versão principal de destino. Por exemplo, este endereço de hiperlink para a configuração postgres:work_mem:

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

passa a ser o seguinte endereço para visitar a respectiva documentação do Postgres 17:

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

Componente

Nome

Requer reinicialização

Descrição

Padrão

pgbouncer

autodb_idle_timeout

FALSE

Se os pools de banco de dados criados automaticamente (via «*») não forem utilizados por este número de segundos, eles serão liberados.

3600

pgbouncer

default_pool_size

FALSE

Quantas conexões de servidor devem ser permitidas por par de usuário/banco de dados.

497

pgbouncer

ignore_startup_parameters

FALSE

Ignorar pacotes de inicialização de parâmetros (por exemplo, extra_float_digits).

client_encoding,datestyle,timezone,standard_conforming_strings,extra_float_digits

pgbouncer

max_prepared_statements

FALSE

Número de instruções preparadas que são mantidas ativas em uma única conexão de servidor.

250

pgbouncer

pool_mode

FALSE

Especifica quando uma conexão de servidor pode ser reutilizada por outros clientes.

transaction

pgbouncer

server_idle_timeout

Se uma conexão de servidor ficar ociosa por mais tempo do que este número de segundos, ela será fechada.

FALSE

60

postgres

auto_explain.log_analyze

FALSE

Gera a saída de EXPLAIN ANALYZE, e não apenas a saída de EXPLAIN, que será impressa quando um plano de execução for registrado.

Padrão do Postgres

postgres

auto_explain.log_buffers

FALSE

Controla se as estatísticas de uso do buffer são impressas quando um plano de execução é registrado.

Padrão do Postgres

postgres

auto_explain.log_format

FALSE

Seleciona o formato da saída de EXPLAIN a ser usado.

Padrão do Postgres

postgres

auto_explain.log_min_duration

FALSE

O tempo mínimo de execução da instrução, em milissegundos, que fará com que o plano da instrução seja registrado.

Padrão do Postgres

postgres

auto_explain.log_nested_statements

FALSE

Faz com que as instruções aninhadas (instruções executadas dentro de uma função) sejam consideradas para registro em log.

Padrão do Postgres

postgres

auto_explain.log_timing

FALSE

Controla se as informações de tempo por nó são impressas quando um plano de execução é registrado.

Padrão do Postgres

postgres

auto_explain.log_triggers

FALSE

Faz com que as estatísticas de execução de acionamento sejam incluídas quando um plano de execução é registrado.

Padrão do Postgres

postgres

auto_explain.log_verbose

FALSE

Controla se todos os detalhes são impressos quando um plano de execução é registrado.

Padrão do Postgres

postgres

auto_explain.sample_rate

FALSE

Faz com que auto_explain explique apenas uma fração das instruções em cada sessão.

Padrão do Postgres

postgres

autovacuum_analyze_scale_factor

FALSE

Especifica uma fração do tamanho da tabela a ser adicionada a autovacuum_analyze_threshold ao decidir se é para acionar ou não uma ação ANALYZE.

Padrão do Postgres

postgres

autovacuum_freeze_max_age

TRUE

Especifica a duração máxima (em transações) que o ID da transação da tabela pode atingir antes que uma operação VACUUM seja forçada para impedir o wraparound do ID da transação na tabela.

Padrão do Postgres

postgres

autovacuum_vacuum_cost_delay

FALSE

Especifica o valor do atraso do custo que será usado nas operações VACUUM automáticas. Se -1 for especificado, o valor regular vacuum_cost_delay será usado.

Padrão do Postgres

postgres

autovacuum_vacuum_cost_limit

FALSE

Especifica o valor limite do custo que será usado nas operações VACUUM automáticas.

Padrão do Postgres

postgres

autovacuum_vacuum_insert_scale_factor

FALSE

Especifica uma fração do tamanho da tabela a ser adicionada a autovacuum_vacuum_insert_threshold ao decidir se é para acionar ou não uma ação VACUUM.

Padrão do Postgres

postgres

autovacuum_vacuum_insert_threshold

FALSE

Especifica o número de tuplas inseridas necessárias para acionar um VACUUM em qualquer tabela.

Padrão do Postgres

postgres

autovacuum_vacuum_scale_factor

FALSE

Especifica uma fração do tamanho da tabela a ser adicionada a autovacuum_vacuum_threshold ao decidir se é para acionar ou não uma ação VACUUM.

Padrão do Postgres

postgres

checkpoint_completion_target

FALSE

Especifica a meta da conclusão do ponto de verificação, como uma fração do tempo total entre os pontos de verificação.

Padrão do Postgres

postgres

checkpoint_timeout

FALSE

Tempo máximo entre os pontos de verificação WAL automáticos.

Padrão do Postgres

postgres

checkpoint_warning

FALSE

Grava uma mensagem no log do servidor se os pontos de verificação causados pelo registro dos arquivos de segmento do WAL ocorrem mais próximos do que esta quantidade de tempo.

Padrão do Postgres

postgres

default_statistics_target

FALSE

Define a meta de estatística padrão para colunas de tabela sem uma meta específica de coluna definida por ALTER TABLE SET STATISTICS.

Padrão do Postgres

postgres

default_text_search_config

FALSE

Seleciona a configuração de pesquisa de texto usada pelas variantes das funções de pesquisa de texto que não têm um argumento explícito que especifica a configuração.

Padrão do Postgres

postgres

default_transaction_read_only

FALSE

Uma transação SQL somente leitura não pode alterar tabelas não temporárias.

desativado

postgres

hot_standby_feedback

FALSE

Especifica se uma espera ativa enviará ou não feedback à espera primária ou upstream sobre as consultas que estão em execução na espera.

ativado

postgres

idle_in_transaction_session_timeout

FALSE

Encerra qualquer sessão que tenha ficado ociosa em uma transação aberta por mais tempo do que o especificado.

Padrão do Postgres

postgres

intervalstyle

FALSE

Define o formato de exibição do valor do intervalo.

Padrão do Postgres

postgres

jit

FALSE

Habilita o suporte a JIT.

Padrão do Postgres

postgres

lock_timeout

FALSE

Anula qualquer instrução que aguarde mais do que o tempo especificado enquanto tenta adquirir um bloqueio.

Padrão do Postgres

postgres

log_autovacuum_min_duration

FALSE

Faz com que cada ação executada por autovacuum seja registrada se for executada por pelo menos o tempo especificado.

Padrão do Postgres

postgres

log_connections

FALSE

Gera uma linha nos logs do servidor detalhando cada conexão bem-sucedida.

Padrão do Postgres

postgres

log_destination

FALSE

Define os destinos de log desejados.

syslog,stderr

postgres

log_disconnections

FALSE

Faz com que os encerramentos de sessão sejam registrados. A saída de log mostra informações semelhantes a log_connections, mais a duração da sessão.

Padrão do Postgres

postgres

log_duration

FALSE

Faz com que a duração de cada instrução concluída seja registrada.

Padrão do Postgres

postgres

log_line_prefix

FALSE

Especifica uma cadeia de caracteres no estilo printf, que é emitida no início de cada linha do log.

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

postgres

log_lock_waits

FALSE

Controla se uma mensagem de log é produzida quando uma sessão aguarda mais tempo que o deadlock_timeout para adquirir um bloqueio.

ativado

postgres

log_min_duration_sample

FALSE

Permite gerar uma amostragem da duração das instruções concluídas que foram executadas por pelo menos o tempo especificado.

Padrão do Postgres

postgres

log_min_duration_statement

FALSE

Faz com que a duração de cada instrução concluída seja registrada se a instrução for executada por pelo menos o tempo especificado.

2s

postgres

log_min_messages

FALSE

Controla quais níveis de mensagem são gravados no log do servidor.

notice

postgres

log_rotation_size

FALSE

Determina o tamanho máximo de um arquivo de log individual.

Padrão do Postgres

postgres

log_statement

FALSE

Controla quais instruções SQL são registradas.

ddl

postgres

log_statement_sample_rate

FALSE

Determina a fração das instruções com duração superior a log_min_duration_sample que serão registradas.

Padrão do Postgres

postgres

log_temp_files

FALSE

Controla o registro de nomes e tamanhos de arquivos temporários.

10MB

postgres

log_transaction_sample_rate

FALSE

Define a fração das transações com instruções que são todas registradas, além das instruções registradas por outros motivos.

Padrão do Postgres

postgres

logical_decoding_work_mem

FALSE

Especifica a quantidade máxima de memória que será usada pela decodificação lógica.

Padrão do Postgres

postgres

maintenance_work_mem

FALSE

Especifica a quantidade máxima de memória que será usada por operações de manutenção, como VACUUM, CREATE INDEX e ALTER TABLE ADD FOREIGN KEY.

TOTAL_MEMORY * 0,4

postgres

max_connections

TRUE

Determina o número máximo de conexões simultâneas no servidor de banco de dados.

500

postgres

max_locks_per_transaction

TRUE

Controla o número médio de bloqueios de objetos alocados para cada transação.

Padrão do Postgres

postgres

max_logical_replication_workers

TRUE

Especifica o número máximo de trabalhadores de replicação lógica.

Padrão do Postgres

postgres

max_parallel_maintenance_workers

FALSE

Define o número máximo de trabalhadores paralelos que podem ser iniciados por um único comando de utilitário.

Padrão do Postgres

postgres

max_parallel_workers

FALSE

Define o número máximo de trabalhadores que o cluster pode suportar em operações paralelas.

NUM_CPUS

postgres

max_parallel_workers_per_gather

FALSE

Define o número máximo de trabalhadores que podem ser iniciados por um único nó Gather ou Gather Merge.

NUM_CPUS

postgres

max_replication_slots

TRUE

Especifica o número máximo de slots de replicação que o servidor pode suportar.

10

postgres

max_slot_wal_keep_size

FALSE

Especifica o tamanho máximo de arquivos WAL que os slots de replicação podem reter no diretório pg_wal no momento do ponto de verificação.

STORAGE_GB * 0,1

postgres

max_standby_archive_delay

FALSE

Determina quanto tempo o servidor de espera deve aguardar antes de cancelar as consultas em espera que entram em conflito com as entradas WAL prestes a serem aplicadas.

Padrão do Postgres

postgres

max_standby_streaming_delay

FALSE

Determina quanto tempo o servidor de espera deve aguardar antes de cancelar as consultas em espera que entram em conflito com as entradas WAL prestes a serem aplicadas.

Padrão do Postgres

postgres

max_wal_senders

TRUE

Especifica o número máximo de conexões simultâneas de servidores de espera ou clientes de backup base de streaming.

10

postgres

max_wal_size

FALSE

Tamanho máximo para permitir que o WAL cresça durante os pontos de verificação automáticos.

MIN(10GB, STORAGE_GB * 0,1)

postgres

max_worker_processes

TRUE

Define o número máximo de processos em segundo plano que o cluster pode suportar.

100

postgres

pg_stat_statements.max

TRUE

Número máximo de instruções rastreadas.

Padrão do Postgres

postgres

pg_stat_statements.track

FALSE

Controla quais instruções devem ser rastreadas.

Padrão do Postgres

postgres

pg_stat_statements.track_utility

FALSE

Os comandos de utilitário devem ser rastreados. Os comandos de utilitário são todos aqueles, exceto SELECT, INSERT, UPDATE, DELETE e MERGE.

Padrão do Postgres

postgres

random_page_cost

FALSE

Define a estimativa do planejador para o custo de uma página de disco buscada não sequencialmente.

1,1

postgres

session_preload_libraries

FALSE

Especifica uma ou mais bibliotecas compartilhadas que devem ser pré-carregadas no início da conexão.

Padrão do Postgres

postgres

statement_timeout

FALSE

Anula qualquer instrução que leve mais tempo do que o especificado.

Padrão do Postgres

postgres

synchronous_commit

FALSE

Especifica o volume de processamento WAL que deve ser concluído antes que o servidor de banco de dados retorne uma indicação de «sucesso» para o cliente.

local

postgres

syslog_split_messages

FALSE

Divide as mensagens enviadas para o syslog por linhas e para caber em 1.024 bytes.

Padrão do Postgres

postgres

tcp_keepalives_count

FALSE

Especifica o número de mensagens keepalive TCP que podem ser perdidas antes que a conexão do servidor com o cliente seja considerada inativa.

4

postgres

tcp_keepalives_idle

FALSE

Especifica a quantidade de tempo sem atividade de rede após a qual o sistema operacional deverá enviar uma mensagem keepalive TCP para o cliente.

2

postgres

temp_file_limit

FALSE

Especifica a quantidade máxima de espaço em disco que um processo pode usar para arquivos temporários, como arquivos temporários de classificação e hash, ou o arquivo de armazenamento para um cursor mantido pressionado.

MIN(2000GB, STORAGE_GB * 0,25)

postgres

track_activity_query_size

TRUE

Memória reservada para armazenar o texto do comando que está em execução para cada sessão ativa, no campo pg_stat_activity.query.

Padrão do Postgres

postgres

track_commit_timestamp

TRUE

Registra o tempo de confirmação das transações.

Padrão do Postgres

postgres

wal_keep_size

FALSE

Especifica o tamanho mínimo dos arquivos WAL anteriores mantidos no diretório pg_wal, caso um servidor de espera precise buscá-los para replicação de streaming.

Padrão do Postgres

postgres

wal_sender_timeout

FALSE

Define o tempo máximo de espera para a replicação de WAL.

Padrão do Postgres

postgres

work_mem

FALSE

Define a quantidade máxima base de memória que será usada por uma operação de consulta (como uma tabela de classificação ou de hash) antes de gravar em arquivos de disco temporários.

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