Это действительно зависит от того, сколько данных меняется. Допустим, в этой таблице 20 столбцов. И у вас также есть 5 индексов - каждый на diff. колонка.
Теперь, если значения во всех 20 столбцах изменяются ИЛИ, даже если данные в 5 столбцах изменяются, и все эти 5 столбцов проиндексированы, тогда вам может быть лучше "удалить и вставить". Но если изменяются только 2 столбца и, допустим, они не являются частью каких-либо некластеризованных индексов, то вам может быть лучше «обновить» записи, потому что в этом случае будет обновляться только кластеризованный индекс (и индексам не придется обновляться).
В ходе дальнейших исследований я обнаружил, что приведенный выше комментарий является своего рода избыточным, поскольку внутри SQL Server имеется 2 отдельных механизма для выполнения ОБНОВЛЕНИЯ. - «Обновление на месте» (т. Е. Путем изменения значения столбца на новое в исходной строке) или как «ОБНОВЛЕНИЕ не на месте» (УДАЛЕНИЕ сопровождается ВСТАВКОЙ).
Обновления на месте являются правилом и выполняются, если это возможно. Здесь строки остаются точно в одном и том же месте на одной странице в одинаковой степени. Только байты затронуты. В логе есть только одна запись (при условии, что триггеры обновления отсутствуют). Обновления происходят на месте, если обновляется куча (и на странице достаточно места). Обновления также происходят на месте, если ключ кластеризации изменяется, но строка вообще не нуждается в перемещении.
Например: если у вас есть кластеризованный индекс по фамилии, и у вас есть имена: Able, Baker, Charlie Теперь вы хотите обновить Baker до Becker. Никакие строки не должны быть перемещены. Так что это может занять место. Принимая во внимание, что если вам нужно обновить Able до Kumar, строки должны быть смещены (даже если они будут на одной странице). В этом случае SQL Server выполнит УДАЛЕНИЕ, а затем ВСТАВКУ.
Учитывая вышесказанное, я бы посоветовал вам сделать обычное ОБНОВЛЕНИЕ и позволить SQL Server выяснить, как это сделать внутренне.
Для получения более подробной информации о внутренних элементах «ОБНОВЛЕНИЕ» или о любых других внутренних элементах, связанных с SQL Server, обратитесь к Kalen Delaney, книге Пола Рэндала и др. - SQL Server 2008 Internals .