Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для rivera

Ветеран


Сообщения: 661
Благодарности: 10

Профиль | Отправить PM | Цитировать


Поясню на примере
Задача:
обновить всех мужчин в таблице продавцов (Sales)

Код: Выделить весь код
update Sales
Set Gender = 'M'
where LastName like '%ов'
Будет ли запрос выполняться быстрей при такой схеме

Код: Выделить весь код
--временная таблица
declare @Rows table (id int)

--выбираем все строки по ключевому полю записи которые будем обновлять:
--id первичный ключ, кластерный индекс в таблице Sales
insert into @Rows (id)
select id from Sales where LastName like '%ов'

--и теперь обновляем все записи, подставляя подзапрос
update Sales
set Set Gender = 'M'
where id in (select id from @Rows)
будет ли последний блок отрабатывает еще менее затратней по времени и ресурсам при такой схеме?

Код: Выделить весь код
--обновляем таблицу через комбинацию join
update sl
set Set Gender = 'M'
from Sales as a
join @Rows as b on a.id = b.id

-------
...


Отправлено: 15:30, 09-02-2010 | #2