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