From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Esteban Osorio <eosorio(at)economia(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Mejorar performance de un query. |
Date: | 2007-05-08 13:06:35 |
Message-ID: | 20070508130635.GC4685@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Esteban Osorio escribió:
> Hola a todos,
Que version estas usando?
Creo que aca el principal problema es el outer join, que esta bloqueando
la optimizacion del join entre historia y documento. En una version
reciente (creo que 8.2) se introdujo la posibilidad de reordenar outer
joins, lo cual es muy beneficioso en casos como este.
Otra cosa que me llama la atencion es que la estimacion de registros de
historia se equivoca en casi dos ordenes de magnitud; puede ser que eso
este haciendo que escoja mal el resto del plan.
Me refiero a este nodo de aca:
-> Index Scan using idx_hist_fecha on historia (cost=0.00..5.95 rows=1 width=34) (actual time=0.079..1.998 rows=71 loops=1)
Index Cond: ((fecha >= '2007-04-04'::date) AND (fecha <= '2007-04-04'::date))
Filter: ((movimiento = 'A'::bpchar) AND (actual = 1100::numeric))
(espera 1 tupla, recibe 71) que se repite en este otro nodo:
-> Index Scan using idx_hist_fecha on historia (cost=0.00..5.95 rows=1 width=24) (actual time=0.046..0.548 rows=36 loops=71)
Index Cond: ((fecha >= '2007-04-04'::date) AND (fecha <= '2007-04-04'::date))
Filter: ((movimiento = 'C'::bpchar) AND (actual = 1100::numeric))
(espera 1 tupla, recibe 36)
Quizas lo que podrias hacer es capturar mas datos estadisticos para
historia, a ver si mejora la estimacion. Si mal no recuerdo la sintaxis
es algo asi:
alter table historia alter column fecha set statistics 100;
analyze;
Prueba tambien cambiando la condicion
fecha BETWEEN 'una fecha' AND 'la misma fecha'
en
fecha = 'la fecha'
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Leonel | 2007-05-08 13:28:07 | Re: Mejor opcion de alta disponibilidad y balanceo de carga? |
Previous Message | Pedro Mateo | 2007-05-08 13:00:52 | POR FAVOR AYUDA!! tengo una semana con un problema sensillo sobre tablas temporales |