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