Em 24 de outubro de 2012 20:53, Tiago Adami <[email protected]> escreveu:

> Em 24 de outubro de 2012 20:36, Danilo Silva
> <[email protected]> escreveu:
> > Pessoal,
> >
> > Eu sei que não devemos criar índices desnecessariamente, mas eu tenho uma
> > tela de consulta onde é possível efetuar a consulta por qualquer campo,
> ou
> > seja, os campos não são obrigatórios, pelo menos um deve ser preenchido.
> >
>
> Se eu criar, por exemplo um índice para cada campo, quais problemas
> poderia
> > ter? Ou teria apenas a questão de espaço em disco?
> >
> > Como o PostgreSQL trataria a consulta com vários índices criados?
>
> Criar muitos índices pode causar um atraso considerável na atualização
> da tabela (INSERT / UPDATE / DELETE) à medida que os índices precisam
> incluir as novas chaves.
>

PUTZ é mesmo, tinha esquecido desse detalhe.


>
> O menor dos seus problemas será na consulta. O otimizador irá
> considerar apenas os índices referenciados pelas colunas que você
> informou nas cláusulas WHERE e/ou ORDER BY e irá escolher o melhor
> baseado nas estatísticas existentes.
>

OK, foi o que eu estava imaginando.

>
> Eu diria para você forçar o uso de uma ou duas colunas na consulta,
> preferencialmente atributos cronológicos como um campo de data e
> outros que possam ter algum agrupamento lógico (como departamento,
> produto, etc). Assim você pode criar os índices para estas colunas
> inicialmente e depois avaliar o resultado.
>

O jeito será forçar o usuário a preencher alguns campos.


[]s
Danilo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a