Мне не известны никакие инструменты, и лучший способ создания индексов - это на самом деле проверять запросы и их планы выполнения вручную. Я не думаю, что автоматизированный инструмент когда-либо будет так же хорош, как несколько хороших администраторов баз данных, анализирующих данные вместе с Profiler.
Но, если вам хочется сделать снимок самостоятельно, я рекомендую вам начать смотреть на представления производительности в SQL Server.
Начните с функции sys.dm_db_missing_index_columns
, которая должна дать вам подсказку о том, какие столбцы могут быть полезны при индексации.
sys.dm_db_index_usage_stats
может показать, какие индексы бесполезны, или может быть также оптимизировано.
sys.dm_exec_cached_plans
, sys.dm_exec_query_plan
, sys.dm_exec_query_stats
и sys.dm_exec_sql_text
должны показывать выполненные вами запросы и их выполнение, а вместе с информацией из других таблиц вы, вероятно, сможете узнать, какие из них требуют дополнительной работы.
На самом деле, я смутно припоминаю какого-нибудь мастера, который может помочь вам проанализировать производительность в Профилировщике, возможно, не автоматически, но, возможно, это можно будет включить в план обслуживания.