[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