У меня есть несколько огромных таблиц в производственной БД SQL 2005, которые нуждаются в обновлении схемы. В основном это добавление столбцов со значениями по умолчанию и некоторые изменения типа столбцов, которые требуют некоторого простого преобразования. Все это можно сделать с помощью простого «SELECT INTO», где целью является таблица с новой схемой.
Наши тесты пока показывают, что даже эта простая операция, выполненная полностью внутри сервера (без извлечения или передачи каких-либо данных), может занять часы, если не дни, для таблицы с миллионами строк.
Есть ли лучшая стратегия обновления для таких таблиц?
edit 1: Мы все еще экспериментируем без окончательного заключения. Что произойдет, если одно из моих преобразований в новую таблицу будет включать слияние каждых пяти строк в одну. Существует некоторый код, который должен выполняться при каждом преобразовании. Наивысшая производительность, которую мы могли получить при этом, позволила нам получить скорость, которая займет не менее нескольких дней для преобразования таблицы 30M строк
Будет ли в этом случае использование SQLCLR (преобразование кода выполняется внутри сервера) значительно увеличить скорость?