From: | Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec> |
---|---|
To: | Manuel Fernando Aller <manuel(dot)aller(at)gmail(dot)com> |
Cc: | POSTGRESQL - Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: pregunta sobre particionado |
Date: | 2010-04-16 20:56:05 |
Message-ID: | g2i3073cc9b1004161356y8b0a745exd182f55124e75a1c@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2010/4/16 Manuel Fernando Aller <manuel(dot)aller(at)gmail(dot)com>:
> El vie, 16-04-2010 a las 14:04 -0500, Jaime Casanova escribió:
>> 2010/4/16 Manuel Fernando Aller <manuel(dot)aller(at)gmail(dot)com>:
>> >
>> > Qué olvidé considerar?
>> >
>>
>> imagino que hiciste un ANALYZE en las dos bases luego de crear los
>> indices, verdad?
>
> Le hice analyze, si.
>
>> puedes mostrar ambos planes de ejecución? que versión de postgres es esta?
> plan 'partido':
> QUERY
> PLAN
> ----------------------------------------------------------------------------------------------------------------------
> Limit (cost=196553.64..196553.65 rows=3 width=830)
> -> Sort (cost=196553.64..208783.60 rows=4891984 width=830)
> Sort Key: public.maestra.maestra_timestamp
> -> Result (cost=0.00..133325.66 rows=4891984 width=830)
> -> Append (cost=0.00..133325.66 rows=4891984 width=830)
> -> Seq Scan on maestra (cost=0.00..11.12 rows=30 width=830)
> Filter: (maestra_timestamp >= '2010-03-01
> 00:22:00'::timestamp without time zone)
> -> Seq Scan on maestra201003 maestra (cost=0.00..84760.52
> rows=3109091 width=89)
> Filter: (maestra_timestamp >= '2010-03-01
> 00:22:00'::timestamp without time zone)
> -> Seq Scan on maestra201004 maestra (cost=0.00..48554.01
> rows=1782863 width=89)
> Filter: (maestra_timestamp >= '2010-03-01
> 00:22:00'::timestamp without time zone)
> (11 filas)
>
> el plan de la original:
> QUERY
> PLAN
> ------------------------------------------------------------------------------------------------------------
> Limit (cost=0.00..0.13 rows=3 width=88)
> -> Index Scan using ix_maestra_timestamp on maestra
> (cost=0.00..142343.22 rows=3314407 width=88)
> Index Cond: (maestra_timestamp >= '2010-03-01
> 00:22:00'::timestamp without time zone)
> (3 filas)
>
podrias mostrar el plan pero sacado con EXPLAIN ANALYZE para que no
solo muestre los estimados sino tambien los tiempos reales de
ejecucion?
Ahora mi intento de adivinar lo que esta pasando
> ahora, mirando esto, pregunto, por qué no quiere usar los índices en el
> esquema particionado?
>
porque, IMHO, no tendria sentido.
estas pidiendole todos los datos que cumplan con (maestra_timestamp >=
'2010-03-01 00:22:00'::timestamp without time zone) que son
basicamente todos los registros en maestra201003 y 201004... y luego
los esta ordenando, pero como no tiene manera de saber si los
resultados de las particiones van arriba, abajo o como mejor hace un
gran sort (o es lo suficientemente inteligente como para usar el
constraint_exclusion tambien para ordenar las particiones en el ORDER
BY?) (no se si me explique pero tengo prisa por salir a un sitio y
queria dejar pasada la idea :)
mientras que si es una sola tabla, usa el indice porque ese ya esta ordenado
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Angel Hernandez Moreno | 2010-04-16 23:04:01 | Update con select |
Previous Message | Manuel Fernando Aller | 2010-04-16 20:28:21 | Re: pregunta sobre particionado |