Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — Quadrix 2025

Banco de DadosPostgreSQL
Código
qg594742
Banca
Quadrix
Órgão
CFBio
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas
Quanto às ferramentas OLAP, à álgebra relacional e aos bancos de dados relacionais em plataforma baixa, julgue o item a seguir.O parâmetro shared_buffers do PostgreSQL especifica a quantidade de memória que cada operação de consulta pode utilizar para realizar tarefas, como, por exemplo, ordenação e agrupamento.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Parâmetros de configuração do PostgreSQL: shared_buffers × work_mem

Gabarito: ERRADO (letra E). O parâmetro shared_buffers do PostgreSQL especifica a quantidade de memória que o servidor de banco de dados usa para buffers de memória compartilhada — ou seja, a memória compartilhada entre os processos do servidor para cache de páginas de dados. A memória usada por cada operação de consulta para tarefas como ordenação e agrupamento é definida pelo parâmetro work_mem. A banca trocou a função de um parâmetro pela do outro.

O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional (SGBD) de código aberto, descendente do projeto Postgres da Universidade de Berkeley. Sua arquitetura é cliente/servidor: um processo servidor (postgres) gerencia os arquivos do banco, aceita conexões e executa ações em nome dos clientes, enquanto os aplicativos clientes (front-ends) enviam consultas. Para cada conexão, o servidor inicia um novo processo. Essa arquitetura explica por que existem parâmetros de configuração distintos para a memória compartilhada global e para a memória de cada operação.

Os parâmetros de configuração do PostgreSQL são definidos principalmente no arquivo postgresql.conf, que fica no diretório de dados. Cada parâmetro assume um valor de um dos cinco tipos: booleano, sequência, número inteiro, ponto flutuante ou enumerado (enum). Eles não diferenciam maiúsculas de minúsculas. Dentre os parâmetros de consumo de recursos, dois são frequentemente confundidos:

  • shared_buffers (integer): define a quantidade de memória que o servidor de banco de dados usa para buffers de memória compartilhada. O padrão é tipicamente 128 MB, mas pode ser menor se as configurações do kernel não o suportarem. Essa configuração deve ter pelo menos 128 kilobytes. Configurações significativamente maiores que o mínimo são geralmente necessárias para um bom desempenho. Este parâmetro pode ser definido apenas no início do servidor.

  • work_mem (integer): especifica a quantidade de memória a ser usada pelas operações de classificação interna e tabelas de hash antes de gravar em arquivos de disco temporários. O valor padrão é 4 MB. É este o parâmetro que se relaciona diretamente com tarefas de ordenação e agrupamento em consultas.

A confusão entre esses dois parâmetros é uma pegadinha clássica em provas de banco de dados. O shared_buffers é uma memória compartilhada global, usada para cache de páginas de dados lidas do disco, beneficiando todas as conexões. O work_mem é uma memória local de cada operação de ordenação ou hash, usada durante a execução de uma consulta específica. A banca, ao afirmar que shared_buffers especifica a memória para cada operação de consulta, inverteu os papéis.

Para fixar a distinção, observe a tabela comparativa:

Critério

shared_buffers

work_mem

Função

Memória compartilhada para buffers de páginas de dados

Memória para operações de classificação e tabelas de hash

Escopo

Servidor (global, entre processos)

Cada operação de consulta (local)

Valor padrão

128 MB (tipicamente)

4 MB

Quando pode ser alterado

Apenas no início do servidor

Em sessões individuais (antes do uso)

NÃO CAIA NESSA!

A banca troca a função do shared_buffers pela do work_mem. O candidato que decora os nomes sem entender o papel de cada um cai na armadilha. Lembre-se: shared_buffers é a memória compartilhada do servidor para cache de dados; work_mem é a memória por operação para ordenação e hash. Com treino, você enxerga essas trocas de longe 💪.

Item — ❌ ERRADO

A afirmação está errada porque atribui ao shared_buffers a função que pertence ao work_mem. O shared_buffers define a quantidade de memória que o servidor de banco de dados usa para buffers de memória compartilhada, ou seja, a memória global para cache de páginas de dados. A memória que cada operação de consulta pode utilizar para tarefas como ordenação e agrupamento é especificada pelo parâmetro work_mem. Portanto, a descrição apresentada no enunciado não corresponde ao shared_buffers, mas sim ao work_mem.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg594742