Em 2 de dezembro de 2011 18:19, Euler Taveira de Oliveira <eu...@timbira.com
> escreveu:

> On 02-12-2011 17:05, Moisés P. Sena wrote:
> > Criei todos os meus relacionamentos usando ALTER TABLE ADD CONSTRAINT ...
> > sendo que a coluna referenciada é CHAVE PRIMARIA da tabela estrangeira.
> > Mesmo assim vou ter que criar os indices manualmente?
> >
> Não confunda as coisas. Só porque estamos falando de "chave" estrangeira
> não
> significa que devemos ter índice. No caso de junção entre duas tabelas foo
> e
> bar, se bar referencia foo, ou seja, bar tem uma chave estrangeira para
> foo, o
> otimizador vai ser esperto o suficiente para usar o índice da tabela
> referenciada (foo); sendo assim, *não* precisamos de índice em bar.
>
> Índices em tabelas que referenciam outras são necessários, quando *não*
> utilizamos uma junção com a tabela referenciada e estamos utilizando o
> campo
> da chave estrangeira na cláusula WHERE. Isso nem sempre é uma máxima em
> todos
> os modelos, então tome cuidado ao sair criando um monte de índices inúteis
> na
> sua base de dados. O melhor a fazer é avaliar as consultas e saber se
> alguma
> delas se encaixa no critério descrito neste parágrafo.


Obrigado! eu não tinha esta informação. Na empresa que trabalho utilizo
muito o Firebird, e ai tenho que criar um indice para cada relacionamento,
segundo andei lendo (posso estar equivocado), ele nao é inteligente o
suficiente para escolher o indice correto.

Abraços,

-- 
Moisés P. Sena
(Analista e desenvolvedor de sistemas WEB e mobile)
http://www.moisespsena.com
http://linux.moisespsena.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a