Marco:

Eu aumentei vários parâmetros, entre eles o work_mem, o problema é que alguns parâmetros funcionam ao subir o banco e dão pau quando são usados. Neste processo recebi vários out of memory durante a execução.

O consumo de CPU que citei é total. Com relação a IO eu sei que é bastante (como não poderia deixar de ser), mas não me parece ser o gargalo. Não consigo imaginar que para criar uma única constraint o PG consuma mais IO que todo o processo de criar o banco, seus dados, indices e demais constraints.

Abraços,
Sergio Medeiros Santi


Marco A P D´Andrade escreveu:
Sergio,

Vc chegou a aumentar o workmem ?

A sugestão para restaurações é sempre, em varios bancos, de subir este 
valor o maximo durante operações críticas como o restore...

O consumo de CPU é de 4 a 10%, mas e o io ?  4% à base de system ou user 
time ? Sugiro registrar todos ...

Por estar fazendo muita leitura, para validar a constraint, isto poderia 
estar consuminto tempo excessivo ...

Ok, cheguei tarde, mas fica minha sugestão...

PS: não sei qual o impacto de usar um "disable constraints" para a 
restauração dos dados, visto que se sabe ter integridade, algo que ainda 
quero testar (ainda não li o manual).

Sds,
Marco Antonio

Sergio Medeiros Santi wrote:
  
Pessoal, a luta continua.

Depois de colocar em prática muitas das sugestões recebidas (senão 
todas) sem nenhum resultado aparente resolvi fazer um backup na 8.1.9, 
desinstalar o 8.1.9, instalar o 8.2.5 e restaurar o backup realizado. 
O resultado foi praticamente o mesmo, ou seja, de um total de 13:40, 
9:40 foram consumidos pela aplicação da constraint nefasta. Também 
desta vez o consumo de cpu ficou abaixo de 10%, tipicamente 4%.

Minha idéia agora é enviar este problema para os mantenedores do PG. 
Neste sentido eu preciso de vocês a indicação de para onde enviar este 
problema e se é preciso me cadastrar em alguma nova lista.

Também gostaria que vocês analisassem o cenário abaixo e, se for o 
caso, me sugiram informações a acrescentar ou suprimir.

Antecipo agradecimentos,

CENÁRIO:
--------------

Hardware: Dell Power Edge 1900, Dual Xeon 3.2, Ram 4Gb, Disco 160Gb SAS

PostgreSQL: 8.2.5 em Server W2K3 SP2

Principais parâmetros do postgresql.conf:
- max_connections      =  100
- enable = bitmapscan-On, hashagg-On, hashjoin-On, indexscan-On, 
mergejoin-On, nestloop-On, seqscan-Off, sort-On, tidscan-Off
- efective_cache_size  =  128MB
- maintenance_work_mem =  120MB
- max_stack_deph       =    2MB
- shared_buffers       = 1000MB
- work_mem             =   10MB
- max_fsm_pages        = 204800
- max_fam_relations    =   2000
- checkpoint_segments  =     30

Base de dados com 22GB
Tempo para restaurar: 13:40:00

Constraint problemática na restauração:
Tabela Produto com 17MB e 40.000 registros
Tabela NotaItem com 9GB e  18.500.000 registros
Constraint Lenta: ALTER TABLE "NotaItem"
                    ADD CONSTRAINT "NotaItem_CodigoProduto_Produto_FK" 
FOREIGN KEY ("CodigoProdutoItem")
                        REFERENCES "Produto" ("CodigoInternoProduto") 
MATCH FULL
                        ON UPDATE RESTRICT ON DELETE RESTRICT;
Tempo para aplicar: 09:40:00 (9 horas e 40 minutos)

Constraint sem problema na restauração (a título de exemplo):
Tabela NotaFiscal com 1GB e 1.500.000 registros
Tabela NotaItem com 9GB e  18.500.000 registros
Contraint Rápida: ALTER TABLE "NotaItem"
                    ADD CONSTRAINT 
"NotaItem_CodigoNotaItem_NotaFiscal_FK" FOREIGN KEY ("CodigoNotaItem")
                        REFERENCES "NotaFiscal" ("CodigoInternoNota") 
MATCH FULL
                        ON UPDATE NO ACTION ON DELETE CASCADE;
Tempo para aplicar: 00:08:00 (8 minutos)


Bem, além destas informações pretendo enviar em anexo as DDLs das duas 
tabelas envolvidas na constrainte LERDA e da constraint satisfatória, 
além do postgresql.conf completo.

Esqueci algo ou exagerei nos detalhes?

Antecipo agradecimentos,
Sergio Medeiros Santi
  

------------------------------------------------------------------------

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  
    


  
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a