No sistema gerenciador de bancos de dados PostgreSQL (v. ...

Próximas questões
Com base no mesmo assunto
Q411029 Banco de Dados
No sistema gerenciador de bancos de dados PostgreSQL (v. 9.1), uma forma de melhorar o desempenho (tuning), quando da inserção de grande quantidade de registros em uma tabela, é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - desabilitar o autocommit e executar apenas um commit ao final das inserções de registros.

Ao trabalhar com a inserção de uma grande quantidade de dados em um banco de dados, como o PostgreSQL, existem diversas técnicas de otimização para melhorar o desempenho. O PostgreSQL, por padrão, utiliza o autocommit, o que significa que cada operação SQL é tratada como uma transação separada e é imediatamente commitada após sua execução. Isto pode ser ineficiente quando estamos inserindo muitos registros pois cada commit implica em uma escrita no disco, o que é uma operação custosa.

Desabilitar o autocommit significa que várias operações SQL podem ser agrupadas em uma única transação. Dessa forma, você pode inserir muitos registros em uma única transação e então, executar um commit ao final. Isso reduz o número de escritas no disco porque o estado da transação é atualizado apenas uma vez, ao invés de após cada inserção individual. É importante notar que, enquanto o autocommit estiver desabilitado, se ocorrer algum erro antes do commit final, todas as alterações não salvas serão perdidas. Porém, o ganho de desempenho pode ser significativo, especialmente com a inserção de grandes volumes de dados.

As demais alternativas são incorretas porque:

  • A: Criar uma nova tabela com o mesmo nome não é prático nem eficiente já que envolve manipulação de metadados e não oferece uma melhoria direta no desempenho de inserção.
  • B: Criptografar registros não tem a ver com melhoria de desempenho de inserção de dados, na verdade, pode até degradar a performance devido ao custo adicional de processamento da criptografia.
  • D: Executar um commit após cada inserção de registro é o que acontece com o autocommit ativado e é exatamente o que queremos evitar para melhorar o desempenho.
  • E: Realizar backup após cada inserção é uma prática que não contribui para melhorar o desempenho e pode, de fato, piorá-lo consideravelmente.

Assim, para a otimização ou tuning do desempenho no PostgreSQL durante a inserção de uma grande quantidade de registros, é mais eficiente seguir a estratégia de desabilitar o autocommit e realizar um único commit ao final das inserções, conforme indicado na alternativa correta.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito: C.

 

O enunciado menciona "grande quantidade de registros". Se fosse feito um commit para cada inserção de registro (autocommit), o desempenho geral do processo seria reduzido.

 

Ao se desabilitar essa função e "executar apenas um commit ao final das inserções de registros", isso seria "uma forma de melhorar o desempenho (tuning)".

Nem precisa conhecer PostgreSQL para realizar essa questão.

Para desativar o Autocommit a nível de sessão e fazer com que seja necessário executar o COMMIT ou ROLLBACK ao final dos seus comandos para que eles sejam realmente aplicados no banco

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo