Jeśli Twój indeks nie jest używany, zwykle oznacza to jeden z dwóch problemów:
-
Warunki predykatu nieargable, takie jak
WHERE DATEPART(YY, Column) = <something>
. Zawijanie kolumn w funkcji osłabi lub wyeliminuje zdolność optymalizatora do efektywnego wykorzystania indeksu. -
Niepokryte kolumny na liście wyjściowej, co jest bardzo prawdopodobne, jeśli masz zwyczaj pisania
SELECT *
zamiastSELECT specific_columns
. Jeśli indeks nie obejmuje zapytania, SQL Server musi przeprowadzić wyszukiwanie RID/klucza dla każdego wiersza, jeden po drugim, co może spowolnić zapytanie tak bardzo, że optymalizator zdecyduje się zamiast tego na skanowanie tabeli.
Sprawdź, czy któryś z nich może dotyczyć Twojej sytuacji; jeśli nadal jesteś zdezorientowany, zalecam zaktualizowanie pytania o więcej informacji na temat schematu, danych i zapytań, które są powolne. 500 MB to bardzo mało jak na bazę danych SQL, więc nie powinno to być wolne. Opublikuj również, co jest w planie wykonania.