Als uw index niet wordt gebruikt, duidt dit meestal op een van de volgende twee problemen:
-
Niet-sargable predikaatvoorwaarden, zoals
WHERE DATEPART(YY, Column) = <something>
. Als u kolommen in een functie plaatst, wordt het vermogen van de optimizer om een index effectief te gebruiken, belemmerd of uitgeschakeld. -
Niet-bedekte kolommen in de uitvoerlijst, wat zeer waarschijnlijk is als je de gewoonte hebt om
SELECT *
te schrijven in plaats vanSELECT specific_columns
. Als de index uw query niet dekt, moet SQL Server voor elke rij een RID/sleutel opzoeken, één voor één, wat de query zo veel kan vertragen dat de optimizer besluit om in plaats daarvan een tabelscan uit te voeren.
Kijk of een van deze van toepassing kan zijn op uw situatie; als je nog steeds in de war bent, raad ik je aan de vraag bij te werken met meer informatie over je schema, de gegevens en de trage query's. 500 MB is erg klein voor een SQL-database, dus dit zou niet traag moeten zijn. Post ook wat er in het uitvoeringsplan staat.