[firebase-br] [Firebase-br] Como ver se um índice está sendo usado.....

Douglas Tosi douglasht em gmail.com
Sex Dez 18 19:18:30 -03 2009


2009/12/18 Humberto S. Reis <hsreisjr em gmail.com>:
> Teria uma forma de ver se um índice é util no banco de dados, ou está só
> gastando tempo (nos inserts, updates, deletes)?

Oi Humberto,

um determinado índice pode ser útil para um comando e não ser útil
para outro. O correto então é analisar cada comando e pesar os casos
onde o índice é útil contra aqueles onde o índice só consome tempo.

Uma maneira rápida de encontrar aqueles índices que não são úteis em
nenhum caso é procurar pela seletividade. Na minha opinião, qualquer
índice com seletividade maior que 0,1 é suspeito e deve ser
investigado:
select rdb$index_name
from rdb$indices
where rdb$statistics > 0.1

Leve em consideração também que a utilidade (seletividade) de um
índice varia com os dados. Imagine dois clientes seus usando bases de
dados com a estrutura idêntica. Pode ser que em um deles um
determinado índice seja útil e no outro não. Exemplo simples, um campo
CodigoFilial. Se o cliente só tiver uma filial não faz sentido ter um
índice neste campo, todos os valores são iguais e o índice não
filtraria nada. Mas se o cliente tem 300 filiais, o índice pode ser
útil.

hth,
-- 
Douglas Tosi
www.sinatica.com




Mais detalhes sobre a lista de discussão lista