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

Responder a