Olha pessoal,
Eu to com esse delete na maior tabela do meu banco:
delete from cobranca_documento_item where cnta_id in  (select cnta_id from 
conta_geral where cntg_ichistorico=3)
que ta  sendo muito custoso para nosso ambiente,no analyze 
Hash IN Join  (cost=444791.95..11042547.76 rows=1390453 width=6)
  Hash Cond: (cobranca_documento_item.cnta_id = conta_geral.cnta_id)
  ->  Seq Scan on cobranca_documento_item  (cost=0.00..5242127.64 
rows=245865664 width=10)
  ->  Hash  (cost=438290.02..438290.02 rows=373994 width=4)
        ->  Bitmap Heap Scan on conta_geral  (cost=7278.42..438290.02 
rows=373994 width=4)
              Recheck Cond: (cntg_ichistorico = 3)
              ->  Bitmap Index Scan on xix1_conta_geral  (cost=0.00..7184.92 
rows=373994 width=0)
                    Index Cond: (cntg_ichistorico = 3)

Estrutura:
-Fk de cobranca_documento_item pra conta_geralligando os campos cnta_id
-Index para  cnta_id em  cobranca_documento_item(nao usando neste explain)
-cnta_id em conta_geral é uma pk
-Index para cntg_ichistorico em  conta_geral( xix1_conta_geral)

Existe uma maneira de fazer um delete mais otimizado n qual nao haja seqscan em 
cobranca_documento_item ?


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a