Se il tuo indice non viene utilizzato, di solito indica uno dei due problemi seguenti:
-
Condizioni predicative non modificabili, ad esempio
WHERE DATEPART(YY, Column) = <something>
. Il wrapping delle colonne in una funzione comprometterà o eliminerà la capacità dell'ottimizzatore di utilizzare efficacemente un indice. -
Colonne non coperte nell'elenco di output, il che è molto probabile se hai l'abitudine di scrivere
SELECT *
invece diSELECT specific_columns
. Se l'indice non copre la tua query, SQL Server deve eseguire una ricerca RID/chiave per ogni riga, una per una, il che può rallentare la query così tanto che l'ottimizzatore decide semplicemente di eseguire un'analisi della tabella.
Vedi se uno di questi potrebbe essere applicabile alla tua situazione; se sei ancora confuso, ti consiglio di aggiornare la domanda con ulteriori informazioni sul tuo schema, i dati e le query lente. 500 MB sono molto piccoli per un database SQL, quindi non dovrebbe essere lento. Pubblica anche cosa c'è nel piano di esecuzione.