Euler, Eu trabalhei bastante com Oracle e SQL Server, posso afirmar que faziam diferença e concordo com os pontos (i) e (ii).
Porém em relação a junção fiquei em dúvida no item (iii): Se a PK da tabela A é FK na tabela B, ao realizar a junção de A com B e usar a coluna FK vai usar o indice da PK na A e na B nada?? Obrigado pelas colocações. Abraços. 2016-10-13 11:16 GMT-03:00 Euler Taveira <eu...@timbira.com.br>: > On 13-10-2016 08:37, Fernando Franquini 'capin' wrote: > > Mas em princípio ele deve fazer mais bem que mal, porque? Porque toda > > junção com as chaves (FKs) que forem realizadas irão utilizar esse > índice. > > > Isso pode ser verdade em outros bancos (que criam índice para cada FK); > no postgres isso não é. É uma prática comum (criar esses índices) mas eu > particularmente não recomendo porque (i) ocupa espaço, (ii) torna > operações de INSERT, UPDATE e DELETE lentas (porque é necessário manter > os índices atualizados) e (iii) junções vão usar o índice da chave > primária e não o índice da FK. Quando esses índices são úteis? Em > consultas que não fazem a junção com a tabela da chave primária e a > cláusula WHERE inclui o campo da FK (e os valores utilizados são > seletivos). > > Nos diversos modelos que trabalhei atrevo a dizer que menos de 2% das > consultas vão se beneficiar de um índice em um campo que é FK. Portanto, > eu prefiro ir criando esses índices em FK sob demanda. Em modelos > consolidados, faz-se uma análise de todas as consultas e os planos de > execução vão dizer se o índice na FK é benéfico ou não. > > Em modelos migrados de outros SGBDs, após uma análise de uso, observa-se > que a maioria dos índices candidatos a remoção são em FK. > > > -- > Euler Taveira Timbira - http://www.timbira.com.br/ > PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Capin Graduado: Bacharel em Ciências da Computação - UFSC Analista de Sistemas e de Banco de Dados / DBA 48.9924.8212 Vivo - Florianópolis - SC - Brasil <http://franquini.wordpress.com/> http://certificacaobd.com.br/ http://br.linkedin.com/in/capin
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral