Wenn Ihr Index nicht verwendet wird, weist dies normalerweise auf eines von zwei Problemen hin:
-
Nicht-sargbare Prädikatbedingungen, wie z. B.
WHERE DATEPART(YY, Column) = <something>
. Das Einschließen von Spalten in eine Funktion beeinträchtigt oder eliminiert die Fähigkeit des Optimierers, einen Index effektiv zu verwenden. -
Nicht abgedeckte Spalten in der Ausgabeliste, was sehr wahrscheinlich ist, wenn Sie die Gewohnheit haben,
SELECT *
zu schreiben stattSELECT specific_columns
. Wenn der Index Ihre Abfrage nicht abdeckt, muss SQL Server eine RID/Schlüsselsuche für jede Zeile nacheinander durchführen, was die Abfrage so sehr verlangsamen kann, dass der Optimierer stattdessen einfach einen Tabellenscan durchführt.
Prüfen Sie, ob eine davon auf Ihre Situation zutreffen könnte; Wenn Sie immer noch verwirrt sind, würde ich empfehlen, die Frage mit weiteren Informationen zu Ihrem Schema, den Daten und den langsamen Abfragen zu aktualisieren. 500 MB sind sehr wenig für eine SQL-Datenbank, daher sollte dies nicht langsam sein. Posten Sie auch, was im Ausführungsplan steht.