Вы не должны задавать этот вопрос. Вы спрашиваете: «Лучше ли это сделать правильно или не так, во имя какой-то туманной идеи« быстрее »?
У вас есть приложение, которое как-то слишком медленно? Вы почему-то думаете, что проблема в том, что ваши UPDATE слишком долго? Проводили ли вы какие-либо измерения и сравнительный анализ эффективности взаимодействия с базами данных?
Что вы делаете, это преждевременная оптимизация наихудшего вида, и вы делаете свое приложение плохим сервисом. Вы делаете дикие догадки о том, как ускорить ваш код, и абсолютно ничего не использовать.
Напишите свой код в порядке. Затем попробуйте найти, где у вас проблемы с производительностью. У вас даже есть проблема с производительностью, или вы задаете этот вопрос просто потому, что думаете, что об этом вас должны спросить? Вы не должны.
Даже если конкретно DID есть проблемы с обновлениями слишком медленно, мы не можем ответить на вопрос «Является ли X быстрее, чем Y», потому что вы не дали нам почти достаточно информации, такие как:
- Какую базу данных вы используете
- макеты таблиц
- Какие индексы на базе
- Как вы взаимодействия с базой данных
Пожалуйста, напишите свой код правильно, а затем вернитесь с подробностями о том, что слишком медленно, а не гадать на микро-оптимизации.
Если вам нужно обновить несколько строк, я не думаю, что производительность имеет значение, как если бы вам нужно было обновить все 1 миллион строк. – BoltClock
Я обновил вопрос, чтобы упомянуть, что я идеально ориентирован на SQL 2005/2008. –
Подумайте о том, что вы просите - выполняет ли две операции быстрее, чем одна? Чтобы удалить rec, необходимо удалить его из блока данных и любых связанных блоков индексов. Вставка должна иметь обратную сторону. Обновление оптимизировано для обновления на месте так же мало, сколько необходимо, только касание индексов при изменении индексированных столбцов. Короче говоря, обновление происходит намного быстрее. – Will