Sérgio,
se você quer deletar de 30 em 30mil, então o limit está no local
incorreto. Este seu comando não é o mesmo que:
DELETE FROM Esquema.TABELA1
WHERE CAMPO1 = 'D_E_L'
// no máximo com um "and campo2 is not null)
???
sds
Fábio Gibon
----- Original Message -----
From: sergio santos
To: [email protected]
Sent: Thursday, January 27, 2011 1:32 PM
Subject: [pgbr-geral] Delete é muito lento
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