Hvis dit indeks ikke bliver brugt, indikerer det normalt et af to problemer:
-
Ikke-sargerbare prædikatbetingelser, såsom
WHERE DATEPART(YY, Column) =
. Indpakning af kolonner i en funktion vil forringe eller eliminere optimeringsværktøjets evne til effektivt at bruge et indeks. -
Ikke-dækkede kolonner i outputlisten, hvilket er meget sandsynligt, hvis du har for vane at skrive
SELECT *
i stedet forSELECT specific_columns
. Hvis indekset ikke dækker din forespørgsel, skal SQL Server udføre et RID/nøgleopslag for hver række, én efter én, hvilket kan sænke forespørgslen så meget, at optimeringsværktøjet bare beslutter sig for at lave en tabelscanning i stedet for.
Se om en af disse kan gælde for din situation; hvis du stadig er forvirret, vil jeg anbefale, at du opdaterer spørgsmålet med flere oplysninger om dit skema, dataene og de forespørgsler, der er langsomme. 500 MB er meget lille for en SQL-database, så det burde ikke være langsomt. Post også, hvad der står i udførelsesplanen.