paulo matadr escreveu:
> Existe alguma forma no postgres de forca o uso de um  indice particular,
> do tipo eu tenho 3 indices semelhantes e a,b e c.
> eu queria que apenas o C fosse usado pra uma query especifica.
> Lembro  que no oracle,usa-se hints.E no nosso querido postgres ?
> 
O planejador geralmente faz a coisa certa; não tente ser mais experto do que
ele. É claro, que há casos em que ele não é experto o suficiente. Então, se o
PostgreSQL não escolheu o índice que você queria é porque (i) ele julgou que o
índice escolhido é aquele que contém um custo menor ou (ii) o seu julgamento
estava errado.

Sem olhar um EXPLAIN ANALYZE e a estrutura das tabelas e índices envolvidos na
consulta fica difícil dizer algo.

É como o Fábio disse, _hints_ são _gambiarras_ para quem *não* quer corrigir o
planejador. Além disso, eles podem dar um certo poder de julgamento (às vezes,
errado -- caso clássico é utilizar _indexscan_ ao invés de _seqscan_ em que a
consulta precisa varrer toda ou quase toda tabela) para o desenvolvedor. O
PostgreSQL prefere melhorar o planejador do que adicionar gambiarras para
escolha de outros planos de execução.

Por fim, se você tem índices semelhantes é muito provável que você não precise
de algum deles.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a