Самый быстрый способ обновить огромную таблицу sql

#sql #sql-server

Вопрос:

Мне нужно обновить огромную таблицу (более 200 миллионов записей, 20 столбцов).

Я попытался обновить одну колонку:

 update Table1 set [Customer]=Null where [Customer]='-' or len([customer])=0
 

И это заняло более 2 часов.
Я попробовал его на всех колонках, и он все еще работает, уже более 5 дней.

 update Table1 set [Name]=Null where [Name]='-' or len([Name])=0
update Table1 set [Email]=Null where [Email]='-' or len([Email])=0
...
 

Кстати — в таблице нет никаких индексов или триггеров, только данные. База данных не используется, и режим восстановления прост.

Есть ли более эффективный способ обновления больших таблиц?

Комментарии:

1. Возможно, вам захочется выбрать новую таблицу, а затем заменить старую. Это вариант?

2. Можете ли вы просто создать несколько индексов и удалить их позже, если не хотите носить их с собой? Почему вы используете len([Col])=0 вместо [Col]='' (n)(var)столбцов символов?

3. @Aadmaa,я открыт для вариантов, но я не вижу, как это быстрее, все равно нужно просмотреть каждую строку и каждый столбец

4. Вы могли бы попробовать; я почти уверен, что это будет на порядок быстрее. Добавьте индексы после выбора.

5. @squillman, столбцы-это nvarchar. в чем разница между len([Col])=0 и [Col]=»?