Array
(
)

Excessos de Índices

Mauro Moraes
   - 13 set 2010

Eu tenho uma aplicação que é em duas camadas, o banco SQL Server 2005 está com 360 GB, dos quais os dados: 89 GB, índices: 148 GB. Há 2 tabelas grandes a TAB_A(82 milhões de linhas / 18,5 GB / 20,8% dos dados) e a TAB_B(37,5 milhões de linhas / 18,5 GB / 20,7% dos dados). 1200 tabelas, sendo 1000 com menos de 10.000 linhas e destas 604 possuem menos de 10 linhas ou estão em branco. 44 tabelas com mais de um milhão de registros.
A tabela TAB_B tem 30 índices, sendo 1 cluster. Más dos não-cluster, existem alguns com até 8 campos, inclusive texto, e são vários índices assim. A tabela TAB_A tem 12 índices, sendo 1 cluster e a quantidade de campos em índices não cluster parecido com a outra.
Eu penso que o fato de a aplicação ser em 2 camadas, e existirem muitos índices (ainda não sei se os índices estão setados na aplicação), estes são responsáveis pelo tamanho excessivo apresentado de 148GB. São tabelas de vendas. O que você aconselharia que eu devesse usar: O Profile, Contadores, o Tuning Advisor? Qual seria a abordagem mais correta pra analisar esse índices, considerando a aplicação ser em 2 camadas? 

Emerson
   - 18 set 2010

realmente parece que há um excesso de índices.

você precisa analizar a real necessidade deles. é necessário haver a chave primária e os índices dos campos utilizados em relacionamentos.