Em 15 de dezembro de 2011 09:22, Vinicius Abrahao
<vinnix....@gmail.com>escreveu:

>
> Olá Edson,
>
> Observe que se você utilizar consultas utilizando o "coringa" (%) antes da
> expressão,
> a consulta não irá utilizar indices. por exemplo.:
>
> where apelido like 'AA1%'   -- utiliza índice
> where apelido like '%AA1'   -- não utiliza.
>
> Tendo isso em mente, e sabendo que o tsvector é mais usado para realizar
> busca de texto,
> salvo engano a mesma solução não seria muito adequada ao seu problema.
>
> Particularmente eu prefereria manter um modelo simples, com uma tabela com
> as placas lidas,
> e outra tabela contendo os apelidos (um por linha). cardinalidade 1 pra N.
> usando varchar mesmo.
> crie os índices para chaves, placas e apelidos e ficará tudo bem.
>
>
Obrigado a todos pela ajuda,
Hoje tenho implementado da forma indicada por você e pelo Dutra, porém no
caso das pesquisas
where apelido like '%AA1'
Tenho um descontentamento do usuario devido ao tempo de execução. Em média
2 minutos a tabela tem 50 milhões de registros.
Estive estudando alguma forma de particiona-la, para ganhar nas rotinas de
manutenção e leitura sequencial, mas me deparei que em cada estado
brasileiro ha uma grande quantidade de placas em um certo range, o que me
daria algumas partições muitos grandes e outras praticamente sem registros.
Uma outra possibilidade que pensei foi em particionar essa tabela por
quantidade de registros ou tamanho em disco. Porém nunca utilizei esse
conceito e não sei se teria ganho na verdade.
Vocês poderiam opinar sobre esse meu problema de acordo com suas
experiencias?

Muito Obrigado

Edson Souza
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a