Я обнаружил, что бесплатный скрипт BlitzIndex от Brent Ozar Unlimited (написанный Кендрой Литтлом) - лучший способ изолировать неподдерживаемые индексы (а также индексы, которые выгодно добавлять, индексы, дублирующие работу других индексов и т. Д.)
http://www.brentozar.com/blitzindex/
Он сообщит вам количество раз, когда какой-либо индекс был прочитан с момента последнего сброса статистических показателей (или создания / повторного создания индекса).
Кажется, я помню, как Брент Озар говорил в веб-трансляции, что хорошее эмпирическое правило - не более 10 индексов для таблицы, которую часто читают, и 20 для таблиц, которые представляют собой статические / исторические / архивные данные, которые не будут часто меняться.
Если у вас все еще есть проблемы со скоростью импорта, то есть время, когда база данных не запрашивается активно (возможно, это не в рабочее время). Может быть полезно удалить индекс, импортировать данные и затем повторно применить индексы. (Статистика будет сброшена, конечно.) Причина этого в том, что индексы будут обновляться по мере поступления каждой записи, страницы будут переупорядочены, а для этого потребуется время и дисковый ввод-вывод. Построение индексов после требует одного сканирования таблицы.
Нет жесткого и быстрого правила, вам, возможно, придется экспериментировать с этим в зависимости от типов индекса и задействованных данных. Индексы должны регулярно пересматриваться по мере изменения потребностей / запросов.
sys.dm_db_index_usage_stats
предоставляет эту информацию.