pg_restore - Performance ao criar FKs

From: Richard Klaumann <richard(dot)klaumann(at)gmail(dot)com>
To: pgsql-pt-geral(at)lists(dot)postgresql(dot)org
Subject: pg_restore - Performance ao criar FKs
Date: 2023-05-15 21:03:38
Message-ID: CAEChWkJL8eNHmrhuw-0_WO5Qro=k4MODVsiWjCo5Go-QR_nzXQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-pt-geral

Boa tarde equipe,
estou migrando dados entre as versões 11 e 15 e estou enfrentando alguns
problemas quanto a criação de FKs ao restaurar algumas das FKs.

Realizo um backup de mais de 2800 tabelas partindo do PostgreSQL 11 rodando
em um servidor com CentOS 8.

Ao realizar o restore no PostgreSQL 15 Ubuntu 22 o restore dos dados é
feito com a mesma eficiência do restore na versão 11(apenas para
comparação).
No entanto, quando o banco 15 inicia a criação de algumas FKs o create é
extremamente lento.

Cenário:
SO Ubuntu 22.4
8 VCPUs
18GB Ram
PG 15.2

Ex:
"Tabela_1" com 264.736 de registros. PK Composta por 4 colunas, sendo 3
integer e uma numeric(25,0)
"Tabela_2" com 6.077.761 de registros.

Ao tentar criar a FK entre a "Tabela_2" e a "Tabela_1" com o banco 11 a FK
é criada em poucos segundos. Já ao tentar criar a FK no banco 15 o comando
fica em execução durante várias horas.(VMs idênticas)

Obs: Se eu encerrar a criação da FK executada pelo pg_restore, e executar
manualmente um vacuum analyze sobre a "Tabela_1" e criando a FK manualmente
a criação tambem é feita em poucos segundos.
Obs2: pg_restore executado com -j 4, quando não utilizo o "-j" os restores
das versões 11 e 15 possuem tempos idênticos.

No pg_restore da versão 11 as FKs são criada ao final do restore dos dados.
Ex:
Criação tabela_1;
Criação tabela_2;
Restore tabela_1;
Restore tabela_2;
Criação índices tabela_1;
Criação índices tabela_2;
Criação fk tabela_2;

Já no 15 a criação das fks é feita da seguinte maneira:
Ex:
Criação tabela_1;
Criação tabela_2;
Restore tabela_1;
Criação índices tabela_1;
Restore tabela_2;
Criação índices tabela_2;
Criação fk tabela_2;

Tenho a impressão que não há tempo hábil para a execução do vacuum analyze,
o qual agiliza a criação das FKs.

Alguém já passou por alguma situação parecida?

Desde já agradeço.

Att,
Richard

Responses

Browse pgsql-pt-geral by date

  From Date Subject
Next Message Tiago José Adami 2023-05-16 17:19:24 Re: pg_restore - Performance ao criar FKs
Previous Message Flavio Henrique Araque Gurgel 2023-04-19 07:07:44 Re: Recuperação apenas com diretório PGDATA