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