descobri o problema,

o campo é um timestamp with time zone.

os outros que eu particionei eram apenas timestamp.

agora tenho que descobrir como fazer o check para atender a esse problema,
ou se tenho q mudar a chamada do select.

obrigado.

Em 9 de dezembro de 2011 17:00, jorge sanfelice
<[email protected]>escreveu:

> entao,
>
> Sera que o funcionamento do particionamento esta ligado a qnt de dados na
> tabela? essas tabelas sao gigantes.
>
> pq assim, quanto ao constraint_exclusion, esta on global e na sessao.
>
> quanto ao cast, assim ja funciona em outros exemplos que uso na versao
> 8.3, por exemplo.
>
> pra nao passar por louco, criei no mesmo banco outra tabelas e o
> particionamento funcionou:
>
> O que mais pode estar errado?
>
> CREATE TABLE teste
> (
>   te1 int,
>   te2 timestamp
> );
>
> CREATE TABLE teste201109
> (
> like teste
> )
> INHERITS (teste) WITH ( OIDS=FALSE);
> ALTER TABLE teste201109 ADD CHECK (te2 >= '2011-09-01'::date AND te2 <
> '2011-10-01'::date);
>
> CREATE TABLE teste201110
> (
> like teste
> )
> INHERITS (teste) WITH ( OIDS=FALSE);
> ALTER TABLE teste201110 ADD CHECK (te2 >= '2011-10-01'::date AND te2 <
> '2011-11-01'::date);
> CREATE TABLE teste201111
> (
> like teste
> )
> INHERITS (teste) WITH ( OIDS=FALSE);
> ALTER TABLE teste201111 ADD CHECK (te2 >= '2011-11-01'::date AND te2 <
> '2011-12-01'::date);
>
>
>
> Em 9 de dezembro de 2011 16:02, Flavio Henrique Araque Gurgel <
> [email protected]> escreveu:
>
>  > o problema é que só deveria percorrer a tabela 201109 e 201110, porem o
>> > explain mostra que esta percorrendo todas as tabelas.
>> >
>> >
>> >
>> >  Aggregate  (cost=585580.51..585580.52 rows=1 width=0)"
>> > "  ->  Append  (cost=4.91..570750.60 rows=5931962 width=0)"
>> > "        ->  Bitmap Heap Scan on ocorrencia_evento  (cost=4.91..15.87
>> > rows=64 width=0)"
>> > "              Recheck Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "              ->  Bitmap Index Scan on
>> ocorrencia_evento_ocoedt_pacote_idx
>> > (cost=0.00..4.89 rows=64 width=0)"
>> > "                    Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Index Scan using ocorrencia_evento201112_idx on
>> > ocorrencia_evento201112 ocorrencia_evento  (cost=0.00..8.85 rows=1
>> width=0)"
>> > "              Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Index Scan using ocorrencia_evento201111_idx on
>> > ocorrencia_evento201111 ocorrencia_evento  (cost=0.00..9.55 rows=1
>> width=0)"
>> > "              Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Index Scan using ocorrencia_evento201106_idx on
>> > ocorrencia_evento201106 ocorrencia_evento  (cost=0.00..8.66 rows=1
>> width=0)"
>> > "              Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Index Scan using ocorrencia_evento201107_idx on
>> > ocorrencia_evento201107 ocorrencia_evento  (cost=0.00..8.97 rows=1
>> width=0)"
>> > "              Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Index Scan using ocorrencia_evento201108_idx on
>> > ocorrencia_evento201108 ocorrencia_evento  (cost=0.00..9.13 rows=1
>> width=0)"
>> > "              Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Bitmap Heap Scan on ocorrencia_evento201109
>> ocorrencia_evento
>> > (cost=58118.01..253244.81 rows=2265453 width=0)"
>> > "              Recheck Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "              ->  Bitmap Index Scan on ocorrencia_evento201109_idx
>> > (cost=0.00..57551.65 rows=2265453 width=0)"
>> > "                    Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "        ->  Bitmap Heap Scan on ocorrencia_evento201110
>> ocorrencia_evento
>> > (cost=94062.17..317444.77 rows=3666440 width=0)"
>> > "              Recheck Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>> > "              ->  Bitmap Index Scan on ocorrencia_evento201110_idx
>> > (cost=0.00..93145.56 rows=3666440 width=0)"
>> > "                    Index Cond: ((ocoedt_pacote >= '2011-09-21
>> > 00:00:00-03'::timestamp with time zone) AND (ocoedt_pacote <=
>> '2011-10-20
>> > 23:59:00-02'::timestamp with time zone))"
>>
>> Tente fazer a restrição sem cast (elimine o ::date por exemplo).
>> Verifique na sua sessão:
>> SHOW constraint_exclusion;
>> se está correto mesmo. Pode ter sido alterado para o seu usuário.
>> Em tempo, basta o modo 'partition' na versão 8.4 ou mais recentes, não
>> precisa ser 'on'.
>>
>> []s
>> Flavio Gurgel
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a