Хотя простого метода для достижения этой цели, по-видимому, не существует, если при тестировании по достаточно большой таблице было обнаружено, что приложение из 10 новых индексов с отдельными запросами и конфигурацией одновременно обрабатывает (все началось почти в то же время, отдельно) действительно был быстрее, чем отдельный скрипт , где индексация применялась последовательным способом со значительным запасом. Это также, по-видимому, не оказало отрицательного воздействия, которое можно было бы обнаружить при условии, что у SQL Server достаточно ресурсов для обработки этого воздействия.
Просто чтобы обновить масштаб и масштаб, не вдаваясь в детали:
- Проверено на нескольких таблицах с масштабом от тривиального (3,6M строк) до большего
- Проверено на наборах с индексами 30+ (строки 200M-500M)
- Проверено на таблицах со строками от 1,6 до 1,9 В
- Количество индексов варьировалось от 3-30 + в зависимости от таблицы
- размер базы данных был 1 ТБ
- общий объем от 0 строк до почти 2B строк в 2800+ таблицах
- Сервер был в основном загружен до максимальной точки, которую он мог обрабатывать и удерживал там с помощью автоматизации
Примеры реальных результатов соответствовали сокращению времени выполнения от 9 до 14 часов до менее 43 минут, при этом все индексы применялись одновременно для одной таблицы, а индексирование нескольких таблиц в одной базе данных, а также в более чем 200 отдельных базах данных. , Уровень данных в нескольких ТБ.
Я представил дополнения к индексу, используя Powershell, при этом несколько сотен выполнялись одновременно на разных таблицах, в том числе более 30 на нескольких таблицах.