Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FGV 2023

Banco de DadosPostgreSQL
Código
fg072448
Banca
FGV
Órgão
TJ-RN
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Tecnologia de Informação – Análise de Suporte
Juliana necessita preparar o banco de dados BD_APOIO criado no PostgreSQL para o primeiro uso.De modo a executar a tarefa de popular o BD_APOIO com celeridade, Juliana deve:
  1. Aefetuar a carga de cada tabela usando o comando COPY, com índices habilitados para facilitar a criação de foreign keys na carga de outras tabelas;
  2. Befetuar a carga de cada tabela reduzindo o valor da variável de configuração maintenance_work_mem para não ultrapassar o valor da variável work_mem;
  3. Ccriar mais de um tablespace no sistema de arquivos lógico, de modo a garantir que haja espaço de swapping para carga de dados de todas as tabelas;
  4. Dexecutar a inserção de dados de todas as tabelas no modo autocommit desligado;
  5. Eexecutar o comando ANALYZE antes, para que o processo de carga utilize estatísticas atualizadas.
Revelar gabarito e comentário

GabaritoD — executar a inserção de dados de todas as tabelas no modo autocommit desligado;

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”.

Carga de dados no PostgreSQL com celeridade

Gabarito: letra D. Para popular um banco com rapidez, o ideal é desligar o autocommit e executar todas as inserções em uma única transação, reduzindo a sobrecarga de commits individuais. Isso acelera significativamente a carga de dados.

A banca testa conhecimentos de otimização de carga em massa no PostgreSQL. A chave é entender que cada operação de commit gera custo de disco; agrupar inserções em uma transação diminui esse custo.

Alternativa A — ❌ Incorreta

Embora o COPY seja rápido para leitura de arquivos, manter índices habilitados durante a carga obriga a atualizar cada índice a cada linha inserida, tornando o processo mais lento. Recomenda-se desabilitar índices e constraints, carregar os dados e recriá-los após a carga.

Alternativa B — ❌ Incorreta

Reduzir maintenance_work_mem (usado para VACUUM, CREATE INDEX) não acelera a carga; ao contrário, pode tornar operações posteriores mais lentas. A variável work_mem é para ordenação e joins, não impacta diretamente na velocidade de inserção.

Alternativa C — ❌ Incorreta

Tablespaces distribuem dados em diferentes diretórios, mas não aumentam a velocidade de carga. "Garantir espaço de swapping" não é relevante para celeridade na inserção.

Alternativa D — ✅ Correta ⟵ GABARITO

Desligar o autocommit (iniciar uma transação explícita, inserir todos os dados e commitar ao final) elimina o overhead de commits a cada INSERT. Isso é uma prática comum para carga em massa, reduzindo operações de I/O e melhorando a performance.

Alternativa E — ❌ Incorreta

O comando ANALYZE coleta estatísticas para o planejador de consultas. Executá-lo antes da carga não ajuda, pois as estatísticas seriam baseadas em dados vazios ou anteriores, e a carga em si não se beneficia de estatísticas atualizadas. O correto é executar ANALYZE após a carga,


Gabarito: letra D — desligar autocommit para inserir em uma única transação.

Link permanente: /questoes/fg072448