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.