Re: FW: Select de 11 horas

From: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
To: "Hugo A(dot) Figueroa Solano" <hfigueroa(at)dasi(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: FW: Select de 11 horas
Date: 2010-05-03 12:10:59
Message-ID: 4BDEBD53.4080508@ort.edu.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hugo A. Figueroa Solano escribió:
>
>
>
> Nunca había visto un select tan grande, no me extraña que tarde tanto
>
> ------------------------------------------------------------------------
>
> *De:* pgsql-es-ayuda-owner(at)postgresql(dot)org
> [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] *En nombre de *Edwin Quijada
> *Enviado el:* Jueves, 29 de Abril de 2010 02:54 p.m.
> *Para:* pgsql-es-ayuda(at)postgresql(dot)org
> *Asunto:* [pgsql-es-ayuda] FW: Select de 11 horas
>
>
>
>
> Estoy teniendo problemas con un select que me esta durando 11 horas y
> su salida es de aproximada 200 records he revisado varias cosas pero
> no entender bien el explain me ha ralentizado.
>
> PD:Alguieun que sepa interpretar bien los explain podria hacer un
> webmeeting o algo para poder interpretar bien esta infromacion? Creo
> que Postgres da bastante informacion pero muchas veces no sabemos
> interpretar estos numeros , como mi caso.
>
> Ejemplo esta es una alerta que me envio mi server de monitoreo,munin,
> con el plugin de Postgres
>
> uno.com.do :: talio.uno.com.do :: Postgres locks
> CRITICALs: Locks is 10.97 (outside range [:10]).
> WARNINGs: Exclusive locks is 9.97 (outside range [:5]).
>
>
>
>
> Este es el select en cuestion
>
>
> http://pastebin.com/rrDPrxUB
>
>
>
>
>
>
>
>
> Este es el explain del select mostrado
>
>
>
> http://explain.depesz.com/s/Gxk
>
>
>
>
> ------------------------------------------------------------------------
>
>
>
> __________ Información de NOD32, revisión 5073 (20100429) __________
>
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
>
Hola a todos.
1- El query es horrible
2- podrias usar left o inner con esta parte del query (mezclas producto
cartesiano y joins), por lo cual enloqueces al optimizador.
aegon.toriginal c, (supongo que podria ser *inner join
**aegon.toriginal c on (a.funoid=c.unoid **)*)
aegon.tdata_address e, (supongo que podria ser * inner join
**aegon.tdata_address e on (a.fid_address=e.fid_address )*)
aegon.tdata_t3 h (supongo que podria ser *inner join
**aegon.tdata_t3 h on (a.funoid=h.funoid )*)
left outer join aegon.toffer f ON (h.foffer_id_record=f.id_record)
LEFT OUTER join aegon.tdata_persons q ON(q.fid_person =
h.fid_primary)
LEFT OUTER join aegon.tdata_persons i ON (i.fid_person =
h.fid_secundary)
LEFT OUTER join aegon.tdata_persons j ON (j.fid_person =
h.fid_child)
LEFT OUTER join aegon.tdata_payments n ON (n.fid_payment =
h.fid_payment) ,
aegon.ttransaction_head k , (supongo que podria ser * inner join
**aegon.ttransaction_head k on (a.funoid=k.funoid and
a.fcall_sec_doc=k.fsec_doc and a.fcall_type_doc=k.ftype_doc**)*)
PUBLIC.uno_employes l, (supongo que podria ser *inner join
**PUBLIC.uno_employes l on (k.fmade_by = l.id_employee )** *)
aegon.ttransaction_det m, (supongo que podria ser *inner join
**aegon.ttransaction_det m** on (m.funoid=h.funoid and m.fproductcode=
h.fproduct_code**)*)
aegon.tdata_main s (supongo que podria ser *inner join
**aegon.tdata_main s** on (*a.funoid=s.funoid*)*)

probá reemplazar los productos cartesianos por los inners

Saludos Fernando

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodriguez Fernando 2010-05-03 12:22:49 Re: FW: Select de 11 horas
Previous Message Horacio Miranda 2010-05-03 02:08:37 Re: Bases de Datos + nas