Re: pregunta sobre particionado

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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