Talvez possa resolver isso na aplicação. Monte um script que gere um processo de remoção, passe parâmetros e deixo-o fazendo este trabalho.
Fernando Em 27 de janeiro de 2011 14:32, sergio santos <[email protected]> escreveu: > Pessoal > Estive procurando pela lista sobre "Delete muito lento" e encontrei um > artigo do Fábio Telles Rodriguez em: > http://www.midstorm.org/~telles/2007/11/29/nao-use-delete-use-insert/ > Também vi que já aconteceu uma grande discussão sobre este assunto em: > http://www.mail-archive.com/[email protected]/msg04746.html > > No entanto, depois de ler tudo isso, não consegui fazer com que o meu > comando > > DELETE FROM Esquema.TABELA1 WHERE CAMPO2 IN( > SELECT CAMPO2 from Esquema.TABELA1 > WHERE CAMPO1 = 'D_E_L' > LIMIT 30000 > ); > > se torne viável. > > A consulta se refere a uma tabela de 1.352.996 registros e pelo menos 6 > FOREIGN KEY. > > Não posso simplesmente dar um TRUNCATE na TABELA1 uma vez que é uma tabela > em produção. > Não posso também deletar as FOREIGN KEY e depois habilitá-las novamente, > pois acho isso muito arriscado, a tabela é muito importante aqui na empresa. > > Alguém tem alguma dica de como melhorar a performance em um DELETE ? > > O Query Plan segue abaixo > > "Nested Loop (cost=54559.52..55425.84 rows=200 width=6)" > " -> HashAggregate (cost=54559.52..54561.52 rows=200 width=4)" > " -> Limit (cost=0.00..54184.52 rows=30000 width=4)" > " -> Seq Scan on TABELA1 (cost=0.00..69348.96 rows=38396 > width=4)" > " Filter: ((CAMPO1)::text = 'D_E_L'::text)" > " -> Index Scan using pedido_pkey on pedido (cost=0.00..4.31 rows=1 > width=10)" > " Index Cond: (Esquema.TABELA1.CAMPO2 = Esquema.TABELA1.CAMPO2)" > > > Obrigado > > ------------------------ > Sérgio Antônio dos Santos > Bacharel em Sistemas de Informação > > Cel: (31) 8601-5207 > Residencia: (31) 3885-2346 > site: http://www.clientside.com.br > Twitter: @serginhosant > Linkedin: http://br.linkedin.com/in/serginhosant > Delicious: http://www.delicious.com/serginhosant > Fotos: http://picasaweb.google.com/sergio.serginhosant > > > ----------- > “Rogo a Deus como se esperasse tudo d’Ele, mas trabalho como se esperasse > tudo de mim” S.Tomás de Aquino > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
