Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select vs set/values  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
Что лучше, быстрее, менее затратно?
А)
set @a = 1;
set @b = '45646546';
set @c = getdate();
или
select
  @a = 1,
  @b = '45646546',
  @c = getdate();

Б)
insert tbl(a,b,c) values(@a,@b,@c);
или
insert tbl(a,b,c) select @a,@b,@c;
29 сен 17, 10:18    [20830951]     Ответить | Цитировать Сообщить модератору
 Re: select vs set/values  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Prolog,

https://stackoverflow.com/questions/3945361/set-versus-select-when-assigning-variables
29 сен 17, 10:34    [20831012]     Ответить | Цитировать Сообщить модератору
 Re: select vs set/values  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
Протестировал пример из этой статьи.

Если выводить в Grid, то одиночный select работает медленнее множества set в 2-5 раз. :-)))
Если выводить в Text, то одиночный select работает быстрее множества set в 1.5-2 раза, но были редкие случаи, когда и чуть медленнее.
29 сен 17, 11:04    [20831127]     Ответить | Цитировать Сообщить модератору
 Re: select vs set/values  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Prolog,

Вы ссылку читали? Основная разница между ними не в скорости, а в том как они работают.
29 сен 17, 11:33    [20831236]     Ответить | Цитировать Сообщить модератору
 Re: select vs set/values  [new]
aleks222
Guest
Prolog
Что лучше, быстрее, менее затратно?
А)
set @a = 1;
set @b = '45646546';
set @c = getdate();
или
select
  @a = 1,
  @b = '45646546',
  @c = getdate();

Б)
insert tbl(a,b,c) values(@a,@b,@c);
или
insert tbl(a,b,c) select @a,@b,@c;


Ты ишо спроси: чаво быстрее iif или case?

ЗЫ. Подобные хрени преобразуются оптимизатором в "одно и тоже".
Ежели даже это "не одно и тоже", то микроскопические разницы времени не стоят того, чтобы их изучать.
29 сен 17, 11:52    [20831305]     Ответить | Цитировать Сообщить модератору
 Re: select vs set/values  [new]
o-o
Guest
aleks222
Ежели даже это "не одно и тоже", то микроскопические разницы времени не стоят того, чтобы их изучать.

он же мигрировал на 2014-уй и у него
"заметная деградация производительности при переходе на 2014"
"Вылечилась (по совету Microsoft) переводом базы данных на уровень совместимости 2012"
но хочется же уйти от 2012, вот, сейчас set-ы оптимизирует и все станет летать
29 сен 17, 12:10    [20831364]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить