Se o seu índice não estiver sendo usado, geralmente indica um dos dois problemas:
-
Condições de predicado não sargáveis, comoWHERE DATEPART(YY, Column) = <something>
. O agrupamento de colunas em uma função prejudicará ou eliminará a capacidade do otimizador de usar efetivamente um índice.
-
Colunas não cobertas na lista de saída, o que é muito provável se você tiver o hábito de escreverSELECT *
em vez deSELECT specific_columns
. Se o índice não cobrir sua consulta, o SQL Server precisará executar uma pesquisa de RID/chave para cada linha, uma por uma, o que pode tornar a consulta tão lenta que o otimizador decide fazer uma verificação de tabela.
Veja se uma delas pode se aplicar à sua situação; se você ainda estiver confuso, recomendo atualizar a pergunta com mais informações sobre seu esquema, os dados e as consultas que estão lentas. 500 MB é muito pequeno para um banco de dados SQL, portanto, isso não deve ser lento. Poste também o que está no plano de execução.