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
