[firebase-br] Trabalhando corretamente com Indices
Alexandre Sousa
dave.malkavian em gmail.com
Ter Nov 30 14:55:00 -03 2010
Cantu, e o que explica o overhead que é causado quando se adiciona um
índice numa tabela bastante movimentada? No post da Ann, ela diz que o
algoritmo do firebird cria novas páginas de índice quando a mesma está
cheia (e pelo processo me pareceu bastante similar ao algoritmo de uma
B-Tree*) e que o a seletividade pode ficar incorreta após uma grande
quantidade de dados.
No caso da seletividade, entendi que ela esta deve ser recomputada (SET
STATISTICS) mas a criação das páginas de índice é automática, não?
Obrigado,
Alexandre Sousa
Em 30/11/2010 14:40, Carlos H. Cantu escreveu:
> Sugiro ler essas duas mensagens, enviadas pela Ann, contendo
> informações muito interessantes sobre os índices:
> http://tech.groups.yahoo.com/group/firebird-support/message/110653
> http://tech.groups.yahoo.com/group/firebird-support/message/110657
>
> Quanto a eficiência dos índices, podemos dizer que quanto mais chaves
> repetidas um índice tem, menor será sua eficiência. Um índice com
> 10.000 chaves, sendo que 9.500 contem o valor "A", e 500 o valor "B",
> será, no geral, ineficiente, especialmente quando as pesquisas forem
> buscando o valor "A".
>
> Lembrando que o Firebird não atualiza as estatísticas de um índice
> automaticamente. Isso só é feito quando um SET STATISTICS é executado,
> ou o índice é ativado.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> AS> Então, eu não acredito muito nisso. Levando-se em conta que os índices
> AS> são do tipo B-Tree, cada vez que um valor é inserido/deletado/alterado o
> AS> banco deve refazer a árvore, para melhorar a seletividade. Quanto menor
> AS> a granularidade a árvore vai ficar mais larga e menos alta e esse é o
> AS> pior caso possível para o algoritmo de pesquisa/atualização. O overhead
> AS> acaba sendo muito alto nas operações de alteração e pouco ou nenhum
> AS> resultado no select, que acaba não justificando o índice.
>
> AS> Por favor, me corrijam se falei alguma besteira.
>
> AS> []'s
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista