SQL Server:
unused index

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.

indici non utilizzati

 

Individuare l’esistenza di indici non utilizzati è uno step fondamentale per monitorare le performance di un database. Ciò può essere fatto interrogando opportunamente alcune viste di sistema come la sys.index e le DMO (dynamic management objects), in particolare la sys.dm_db_index_usage_stats. Contemporaneamente, è fondamentale monitorare la frammentazione dell’indice tramite la la sys.dm_db_index_phisical_stats ed intervenire eventualmente con una Reorganize o una Rebuild. Sei pronto per la sfida?

Source