Pokud se váš index nepoužívá, znamená to obvykle jeden ze dvou problémů:
-
Předikátové podmínky bez možnosti změny, například
WHERE DATEPART(YY, Column) = <something>
. Zalamování sloupců do funkce zhorší nebo eliminuje schopnost optimalizátoru efektivně používat index. -
Nepokryté sloupce ve výstupním seznamu, což je velmi pravděpodobné, pokud máte ve zvyku psát
SELECT *
místoSELECT specific_columns
. Pokud index nepokrývá váš dotaz, musí SQL Server provést vyhledávání RID/klíče pro každý řádek, jeden po druhém, což může zpomalit dotaz natolik, že se optimalizátor rozhodne místo toho provést prohledání tabulky.
Zjistěte, zda by se jedna z nich mohla vztahovat na vaši situaci; pokud jste stále zmatení, doporučuji aktualizovat otázku o další informace o vašem schématu, datech a dotazech, které jsou pomalé. 500 MB je pro SQL databázi velmi málo, takže by to nemělo být pomalé. Také zveřejněte, co je v prováděcím plánu.