Поиск по NULL при обновлении таблицы
От: Буравчик Россия  
Дата: 13.02.21 13:40
Оценка:
В таблице много записей. Добавлена новая колонка со значением NULL.

Нужно присвоить новое значение этой колонке в каждой строке. Для этого много раз выполняется следующий код:
UPDATE TOP(100000) table
SET col = value
WHERE col IS NULL


Как это ускорить?

Правильно ли я понимаю, что при каждом выполнении такого кода будет выполнять скан по всей таблице, пока не найдутся NOT NULL значения. Т.е. по мере обновления таблицы скорость поиска NULL будет замедляться. Грубо говоря сложность обновления всех записей таблицы O(N^2)

Что произойдет, если добавить индекс по колонке col — индекс для поиска NULL? Ускорится выполнение обновления за счет быстрого поиска NULL, или замедлится за счет постоянного обновления индекса при обновлении таблицы?
Best regards, Буравчик
Отредактировано 13.02.2021 13:45 Буравчик . Предыдущая версия . Еще …
Отредактировано 13.02.2021 13:44 Буравчик . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.