Вот хитрость: используйте динамическое административное представление SQL Server, чтобы получить данные о том, какие индексы были использованы.
Этот запрос даст вам последний использованный индекс в каждой базе данных. Если индексы не используются, то, вероятно, данные также не используются.
SELECT db.[name] AS DatabaseName
, (SELECT TOP 1 last_user_seek FROM sys.dm_db_index_usage_stats ix1 WHERE ix1.database_id = db.database_id ORDER BY last_user_seek DESC) AS last_user_seek
, (SELECT TOP 1 last_user_scan FROM sys.dm_db_index_usage_stats ix1 WHERE ix1.database_id = db.database_id ORDER BY last_user_scan DESC) AS last_user_scan
, (SELECT TOP 1 last_user_lookup FROM sys.dm_db_index_usage_stats ix1 WHERE ix1.database_id = db.database_id ORDER BY last_user_lookup DESC) AS last_user_lookup
, (SELECT TOP 1 last_user_update FROM sys.dm_db_index_usage_stats ix1 WHERE ix1.database_id = db.database_id ORDER BY last_user_update DESC) AS last_user_update
FROM sys.databases db
ORDER BY db.[name]
Одно предупреждение: если у вас есть планы обслуживания, настроенные на регулярную автоматическую переиндексацию ваших баз данных, или стороннюю программу дефрагментации, то эти даты могут быть искусственно недавно.