Em 29 de fevereiro de 2016 18:01, Neto pr <neto...@gmail.com> escreveu: > Mas teria como saber um valor (nem que for aproximado) de tamanho de > tabela, em que seria interessante criar um índice (considerando o > tamanho da ram como referencia)?
Não sei se entendi direito todo o seu questionamento, mas, mesmo que toda a tabela esteja em memória o acesso a índice é muito mais rápido que um tablescan, uma varredura completa sobre os registros da tabela - considerando que ambos estão em memória. Há alguns casos, claro, conforme o tipo da consulta, que o otimizador julga um tablescan mais rápido que um indexscan. Isso pode acontecer, por exemplo, quando você tem uma tabela com dados de produto (de 1 a 10, digamos) e você pesquisa todos os produtos de 1 a 9, excluindo apenas o 10. Neste caso um tablescan será menos custoso que ter que pesquisar o índice e depois buscar os registros na tabela (caso hajam mais colunas na consulta além das existentes no índice). Essa função é do otimizador interno, e pode ter certeza que ele é mais inteligente que qualquer pessoa na hora de decidir isso (desde que as métricas estejam bem atualizadas, portanto o VACUUM ANALYZE é essencial). Um consenso praticamente unânime dentre os mais experientes da lista é que otimização precoce é um tiro no pé. Você deve planejar índices conforme o tipo das consultas que são executadas. Não existe uma fórmula para dizer se você deve ou não criar um índice com base apenas em informações de hardware do servidor, tamanho e estrutura das tabelas. TIAGO J. ADAMI http://www.adamiworks.com @tiadami _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral