On 21-02-2014 13:22, Flávio Granato wrote:
On 21-02-2014 13:16, Lucio Chiessi [VORio] wrote:
Eu também te recomendaria a 2ª opção, para que não tenhas que excluir
informações do seu banco que podem ser necessárias no futuro.

Tirar (entenda-se excluir) não significa apagar ou ficar inacessível.

Pode até ficar em outro repositório de dados, "se" são somente dados
históricos e não necessários para as atuais consultas...


Danilo,

Além dos comentários, extremamente válidos dos amigos, vc poderia avaliar uma 3a opção, visto que seu problema é *melhorar desempenho*. A opção a considerar seria *índices parciais* [1].

Não que eu seja contra ao particionamento de tabelas (uso bastante), mas é que precisa ser bem pensado porque no PostgreSQL temos algumas limitações:

* as partições não são criadas dinâmicamente, vc precisa criar um mecanismo pra isso

* cuidado com as PKs, pois como vc terá várias *tabelas* separadas o PostgreSQL vai garantir a unicidade somente *por partição*, e não de forma global para todas partições

* se vc tem tabelas que fazem FK com a tabela que vc quer particionar, dai vc terá trabalho extra, pois para garantir a restrição vc terá que particioná-la também ou implementar triggers que simulem o seu comportamento (trabalhoso mas funciona)

* já foi mencionado que deve escolher *muito bem* a chave do particionamento, porque se vc nao fizer bem poderá ter problemas depois

Espero ter ajudado.

Att,


[1] http://www.postgresql.org/docs/current/static/indexes-partial.html

--
   Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a