Em 13-08-2012 08:35, jorge sanfelice escreveu:
> Pessoal,
>
> Estou tentando usar uma estrategia de particionamento, porem, nao estou
> obtendo exito.
>
> postgresql 9.1
>
> tenho uma tabela que quero particionar em 10 tabelas -> tabela0,
> tabela1, tabela2,... e tabela9.
>
> a ideia é usar um range por "mod"
>
> a coluna seria um inteiro com o id do cliente.
>
> Criei o check das tabelas filhos assim
>
> tabela0
> "cliente_historico0_
> clihclioid_check" CHECK ((clihclioid % 10) = 0)
> tabela1
> "cliente_historico1_clihclioid_check" CHECK ((clihclioid % 10) = 1)
> tabela2
> "cliente_historico2_clihclioid_check" CHECK ((clihclioid % 10) = 2)
>
> ....
>
> A gravacao esta OK, porem, nao esta surtindo efeito no "SELECT"

O planejador de consultas do PostgreSQL só é capaz de avaliar bem o uso 
de partições usando igualdades simples (= > <). Infelizmente, o uso de 
funções na restrição das tabelas não permite ao planejador otimizar o 
plano de execução.

Como seu particionamento é fixo, faça condições de restrição usando as 
igualdades simples e você terá êxito.

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a