2017-08-19 18:24 GMT-03:00 Neto pr <[email protected]>:

> Ola pessoal
>
> Sou novo na utilização de PostgreSQL, e tenho a seguinte duvida.
>
> Segundo alguns autores, ao se criar uma chave primaria, na verdade o
> SGBD cria um índice primário/único no caso de chave primaria. Mas e no
> caso da chave estrangeira, o SGBD indexa a coluna Fk também?
>

Ele faz a criação de index apenas para PK realmente, e uma coisa que você
precisa se preocupar, além de indexar a  FK, é que o tipo de dados da PK e
da FK sejam os mesmos, senão o index não será utilizado para casos em que o
banco precisa checar os valores das chaves. Já tive grandes problemas com
isso, e é uma coisa que muitas vezes é negligenciada e dificil de
identificar.

>
> Pergunto isso pois criei a seguinte chave estrangeira em um banco de
> testes (do benchmark TPCH):
>
> ALTER TABLE ORDERS ADD FOREIGN KEY (O_CUSTKEY) REFERENCES
> CUSTOMER(C_CUSTKEY);
>
> Apos tentei criar um índice secundário btree na tabela ORDERS desta forma:
> CREATE INDEX indice_custkey_customer on ORDERS (O_CUSTKEY);
>
> Achei que o PostgreSQL  Não iria permitir isso, pois pensei que a
> coluna O_CUSTKEY já estava indexada (pela chave estrangeira), mas o
> PostgreSQL aceitou o índice secundário.
>
> Alguém saberia explicar SE ao criar uma chave estrangeira, é criado ou
> não um índice.
> Outro dia estava vendo um plano de execução, e no plano tinha o uso de
> uma chave estrangeira para recuperar registros, por isso também a
> dúvida.
>
> []`s Neto
> <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br /> <table
> style="border-top: 1px solid #D3D4DE;">
>         <tr>
>       <td style="width: 55px; padding-top: 18px;"><a
> href="https://www.avast.com/sig-email?utm_medium=email&;
> utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank"><img
> src="https://ipmcdn.avast.com/images/icons/icon-envelope-
> tick-round-orange-animated-no-repeat-v1.gif"
> alt="" width="46" height="29" style="width: 46px; height: 29px;"
> /></a></td>
>                 <td style="width: 470px; padding-top: 17px; color: #41424e;
> font-size: 13px; font-family: Arial, Helvetica, sans-serif;
> line-height: 18px;">Livre de vírus. <a
> href="https://www.avast.com/sig-email?utm_medium=email&;
> utm_source=link&utm_campaign=sig-email&utm_content=webmail"
> target="_blank" style="color: #4453ea;">www.avast.com</a>.
> </td>
>         </tr>
> </table>
> <a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1"
> height="1"></a></div>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a