Com base nesta consulta, se houver uma quantidade baixa de leituras totais (muito próximas de 0 ou 0, como 1 ou 2) e uma quantidade alta ou moderada de atualizações do usuário (não foi possível encontrar inserções ou exclusões nesta consulta) com uma grande contagem de linhas, eu deveria, em teoria, remover o índice.
SELECT DISTINCT
OBJECT_NAME(s.[object_id]) AS ObjectName
, p.rows TableRows
, i.name AS [INDEX NAME]
, (user_seeks + user_scans + user_lookups) AS TotalReads
, user_updates UserUpdates
FROM sys.dm_db_index_usage_stats s
INNER JOIN sys.indexes i ON i.[object_id] = s.[object_id]
AND i.index_id = s.index_id
INNER JOIN sys.partitions p ON p.object_id = i.object_id
WHERE OBJECTPROPERTY(s.[object_id],'IsUserTable') = 1
AND s.database_id = DB_ID()
AND i.name IS NOT NULL
ORDER BY (user_seeks + user_scans + user_lookups) ASC
Quero verificar aqui a precisão dessa suposição. Por exemplo, um índice que existe há mais de um ano, mas nunca foi lido, mas altamente atualizado, parece que seria uma má idéia. Existe um cenário em que essa suposição é inválida?
fonte
Sim, a visualização possui apenas estatísticas desde a última reinicialização. Para ajudar a atenuar a configuração de um trabalho que executava uma consulta como a que você postou mensalmente pela manhã antes de nossa janela de manutenção começar a capturar as informações todos os meses antes da reinicialização do servidor. Isso me permitiu voltar ainda mais e analisar as tendências ao longo do tempo. Eu também tive uma segunda consulta que foi executada procurando possíveis índices ausentes.
Outra coisa a considerar é quais outros índices estão em cima da mesa. Pode não estar sendo usado porque é quase todo ou completamente uma duplicata de outro índice. Sim. O servidor SQL permite criar dois índices diferentes, mas idênticos, para que seja completamente redundante.
Você também pode ver como o plano de consulta pode acabar sendo uma consulta que usou esse índice se esse índice foi removido. Teria outro índice para usar ou provavelmente retornaria a uma verificação completa da tabela.
Os índices acabam sendo tanto arte quanto ciência, porque é realmente difícil saber tudo sobre o que pode ser executado e, de qualquer maneira, acaba mudando com frequência.
fonte