[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