[firebase-br] Para que servem as estatísticas de um índice
Douglas Tosi
douglasht em gmail.com
Qua Fev 18 15:35:30 -03 2009
2009/2/18 Ricardo César Cardoso <ricardo_engsoft em yahoo.com.br>:
> Desculpem se a questão é boba, mas tenho essa dúvida. Para que serve o valor "Statistics" para um Índice? Para quem usa IBExpert, por exemplo, esse número é visto quando selecionamos um índice da nossa base de dados.
>
É com esse número que o otimizador de querys do Firebird sabe se um
índice é útil ou não.
Ele representa a estimativa de valores distintos naquele índice. Se o
número devalores distintos é x, a seletividade é 1/x.
Por exemplo, imagine que existe um índice num campo booleano. Pode
haver milhoes de registros, mas o universo de valores daquele campo é
apenas 0 ou 1. Ou seja, somente dois valores. Então a estatística do
índice será 0,5 (1/2). Caso clássico de índice inútil.
Outro exemplo, o índice de uma chave primária. Imagine que existem 1
milhão de registros, mas dessa vez, cada registro tem um valor único.
Então o índice tem 1 milhão de valores distintos. Sua seletividade
será 0,000001 ou 1/1000000.
Quanto mais baixo, melhor.
hth,
--
Douglas Tosi
www.sinatica.com
Mais detalhes sobre a lista de discussão lista