Сам скрипт, выполнив который можно получить список рекомендуемых индексов во всех базах, находящихся на сервере, опубликован тут. http://blogs.msdn.com/b/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx (спасибо Вячеславу Гилеву) за идею.
Получаем очень интересные результаты. У нас к примеру после создания некоторых недостающих индексов производительность операций (создание и запись реализаций на основании заказов покупателя) возрасла в 10 раз.
Но в случае с 1С8 - есть риск что созданные индексы после изменения конфигурации или проверки и тестирования будут удалены. Поэтому немного переработал данный скрипт, так чтобы он генерировал SQL код для создания индекса так, чтобы предварительно анализировать создан ли уже данный индекс. В результате можно.
1) Запустить скрипт получить результат колонки create_index_if_exists_statement
2) Выполнить этот скрипт вручную в QueryAnalyzer первый раз. Возможно некоторые индексы не будут созданы, если возникает ошибка или вы считаете что данный индекс создавать не нужно - коментируйте строку. Желательно запускать построчно и в момент когда на базу нет большой нагрузки так как создание некоторых индексов может занимать длительное время.
3) Когда все необходимые индексы созданы можно этот же скрипт запустить на ежедневный или еженедельный запуск - индексы будут пересозданы, только в том случае если это индекс был по каким то причинам удален из базы.
4) Просмотреть все созданные недостающие индексы тоже легко - там собственный префикс выбираете при помощи запроса:
select * from sysindexes where name like 'missing_index%'