2015-01-15 14:22 GMT-02:00 Márcio A. Sepp <[email protected]>:
> Vcs tem usado o campo date como chave da partição?
Creio que os tipos date e timestamp (with/without time zone) são os mais
comuns de se ver em particionamento.
Mas tome cuidado, se você usar na chave algo como (para particionamento
anual, por exemplo): CHECK(EXTRACT(YEAR FROM the_date) = 2014); e suas
consultas forem na forma:
SELECT ... WHERE the_date = '2014-12-01'
Ou
SELECT ... WHERE the_date BETWEEN '2014-11-01' AND '2014-11-30'
Então a chave de particionamento não vai funcionar, e irá buscar todas
tabelas. Funcionará apenas se usar algo como:
SELECT ... WHERE EXTRACT(YEAR FROM the_date) = 2014 AND the_date =
'2014-12-01'
O que não fica legal, nem recomendado. Agora, para funcionar com as duas
anteriores, você deve definir sua chave como:
CHECK(the_date BETWEEN '2014-01-01' AND '2014-12-31')
Ou seja, sempre adicione os intervalos completos.
Na dúvida, execute a consulta com o EXPLAIN e verifique quais tabelas o
PostgreSQL está escaneando.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral