Esta é uma situação estranha, mas espero que alguém tenha uma resposta.
Durante alguma solução de problemas de desempenho, adicionamos um NONCLUSTERED INDEX a uma tabela, conforme solicitado por sp_BlitzIndex
. Verificamos seu uso no dia seguinte e ele mostrou 0 leituras ( 0 varreduras / pesquisas, 0 pesquisas singleton ) e, por isso, a desativamos.
No minuto seguinte, recebemos uma reclamação da mesma lentidão do aplicativo (problema de desempenho) que estávamos tentando verificar e resolver em primeiro lugar, quando adicionamos o INDEX.
Agora, eu sei, em teoria, isso parece pura coincidência. O ÍNDICE foi provada, mensurável, NÃO USADO . Desativá-lo NÃO DEVE ter causado degradação no desempenho da consulta. Mas é quase coincidência demais .
Questão
Então, minha pergunta, simplesmente, é assim:
É possível que um índice não exclusivo, cujas estatísticas de uso (das DMVs / sp_BlitzIndex
) não mostrem uso, ainda esteja ajudando o desempenho da consulta de alguma forma na tabela afetada?
Respostas:
Sim, poderia, quando o SQL Server decide que as estatísticas desse índice são mais precisas / úteis e usa essas estatísticas para fazer as estimativas e elaborar um plano.
Me deparei com situações em que o SQL Server decidiu usar estatísticas de um índice e verificar / buscar outro índice.
Editar - Isso pode não ser aplicável, porque acabei de perceber que você desabilitou o índice. Eu não testei esse cenário.
fonte
CREATE STATISTICS
vez deCREATE INDEX
.