Il moltiplicarsi di indici nonclustered può essere una delle cause del deterioramento delle performance di un database. Ancor più grave sarebbe il caso in cui tali indici non siano nemmeno utilizzati: può darsi ad esempio che alcuni indici erano stati creati ad hoc per query che non vengono più eseguite. In altri casi, come nell’esempio in basso, a causa del costo delle operazioni di Key o RID lookup, il piano di esecuzione potrebbe decidere di ignorare la presenza di un indice nonclustered e di eseguire comunque uno scan completo della tabella.
Individuare l’esistenza di indici non utilizzati è uno step fondamentale per monitorare le performance di un database. Un analisi sull’utilizzo degli indici può partire combinando opportunamente alcune viste di sistema come la sys.index e la DMO (dynamic management objects) sys.dm_db_index_usage_stats.
Articoli correlati
Leggi l’articolo su come creare un filtered index per migliorare le performance di una query e il consumo di memoria.