Otimizar inserções em massa e usar dados temporários em um servidor do Banco de Dados do Azure para PostgreSQL

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. Recomendamos vivamente que atualize para a Base de Dados Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para a Base de Dados Azure para PostgreSQL – Servidor Flexível, veja O que está acontecendo com a Base de Dados Azure para PostgreSQL Single Server?.

Este artigo descreve como você pode otimizar operações de inserção em massa e usar dados temporários em um servidor do Banco de Dados do Azure para PostgreSQL.

Usar tabelas não registradas

Se você tem operações de carga de trabalho que envolvem dados temporários ou inserem grandes conjuntos de dados em massa, considere o uso de tabelas não registradas.

Tabelas sem registro é um recurso do PostgreSQL que pode ser usado efetivamente para otimizar inserções em massa. O PostgreSQL usa WAL (registro em log write-ahead). Por padrão, ele fornece atomicidade e durabilidade. Atomicidade, consistência, isolamento e durabilidade são as propriedades ACID.

Inseri-las em uma tabela não registrada significa que o PostgreSQL faz inserções sem gravar no log de transações, que, por si só, é uma operação de E/S. Como resultado, essas tabelas são consideravelmente mais rápidas do que as tabelas comuns.

Use as seguintes opções para criar uma tabela não registrada:

  • Crie uma nova tabela não registrada usando a sintaxe CREATE UNLOGGED TABLE <tableName>.
  • Converta uma tabela registrada existente em uma tabela não registrada usando a sintaxe ALTER TABLE <tableName> SET UNLOGGED.

Para reverter o processo, use a sintaxe ALTER TABLE <tableName> SET LOGGED.

Troca de tabela sem registro

Tabelas não registradas não estão livres de falhas. Uma tabela não registrada é automaticamente truncada após uma falha ou sujeita a um desligamento não limpo. O conteúdo de uma tabela não registrada também não é replicado para servidores em espera. Quaisquer índices criados em uma tabela não registrada também são descompactados automaticamente. Após a conclusão da operação de inserção, converta a tabela para registrada para que a inserção seja durável.

Em algumas cargas de trabalho de clientes, observamos um aprimoramento no desempenho de aproximadamente 15% a 20% no uso de tabelas não registradas.

Próximas etapas

Analise sua carga de trabalho para usos de dados transitórios e inserções em massa grandes. Confira a seguinte documentação do PostgreSQL: