Executando o Microsoft SQL Server Profiler de vez em quando, ele sugere um monte de novos índices e estatísticas para criar ("... melhoria estimada em 97% ...").
No meu entendimento cada índice agregado pode fazer uma SQL SELECT
consulta mais rápida, mas também uma UPDATE
ou INSERT
consulta mais lento desde que os índices têm de ser ajustados.
O que me pergunto é: quando tenho índices / estatísticas "demais"?
Talvez não exista uma resposta clara sobre isso, mas algumas regras práticas.
sql-server
performance
index
index-tuning
Uwe Keim
fonte
fonte
UPDATE
e asINSERT
instruções muito lentas.Respostas:
Seu perfil de carregamento é o fator mais importante para responder a esta pergunta.
Se sua carga exigir muita leitura, você deseja que os índices satisfaçam suas consultas mais pesadas ou mais frequentes.
Se sua carga exigir muita gravação, indexe com cuidado. Índice para satisfazer uma busca que um UPDATE precisa, por exemplo, assim como seus um ou dois SELECTs mais caros.
Se a sua carga for OLAP, indexe com moderação, pois você examinará as tabelas de destino de qualquer maneira.
Como você sabe que possui muitos índices?
Quando você pode ver que alguns deles não são usados por nenhuma consulta.
Um DELETE, UPDATE ou INSERT frequente mostra um plano de consulta que envolve várias alterações caras no índice (por exemplo , inserção , atualização ou exclusão de índice não clusterizado ). Use seu julgamento para determinar se a penalidade nessas instruções DML vale o ganho que você está obtendo dos índices que precisam ser atualizados.
fonte
Se você possui índices que estão sendo mantidos, mas nunca estão sendo usados (ou raramente estão sendo usados), você deve ter muitos índices. Se todos os seus índices estiverem sendo usados para melhorar o desempenho do usuário, você não precisará de muitos.
fonte