Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 UNION vs UNION ALL  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1087
Возможно, из пальцев высосано, но есть такое мнение, что пользовать UNION ALL и например DISTINCT годнее, чем UNION
Это так? Ибо на больших наборах данных проверить нет возможности, а на малых нет толку
12 янв 17, 15:09    [20098748]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
invm
Member

Откуда: Москва
Сообщений: 9412
waszkiewicz
Это так?
А не пробовали сперва почитать чем отличается UNION от UNION ALL?
И как вы собрались использовать DISTINCT вместо UNION?
12 янв 17, 15:29    [20098902]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
invm
waszkiewicz
Это так?
А не пробовали сперва почитать чем отличается UNION от UNION ALL?
И как вы собрались использовать DISTINCT вместо UNION?

подозреваю что так :)

SELECT DISTINCT a
FROM
(
  SELECT a FROM t1
  UNION ALL
  SELECT a FROM t2
)
12 янв 17, 15:33    [20098930]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Сортировка будет в любом случае, если нет unuque ограничения.
12 янв 17, 15:45    [20098994]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Wlr-l
Member

Откуда:
Сообщений: 522
при union действительно будет сортировка, так как после объединения наборов нужно найти отличающиеся значения.

при union all выполняется только объединение наборов как есть, без сортировки.

и это не зависит от наличия unuque-ограничения.
12 янв 17, 16:08    [20099095]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
o-o
Guest
Wlr-l
при union действительно будет сортировка, так как после объединения наборов нужно найти отличающиеся значения.

при union all выполняется только объединение наборов как есть, без сортировки.

и это не зависит от наличия unuque-ограничения.

a distinct без сортировки это как????
еще раз для тех, кто не понял вопроса
SELECT DISTINCT a
FROM
(
  SELECT a FROM t1
  UNION ALL
  SELECT a FROM t2
)

vs
  SELECT a FROM t1
  UNION 
  SELECT a FROM t2
12 янв 17, 16:18    [20099150]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Wlr-l
Member

Откуда:
Сообщений: 522
o-o,

UNION ALL + DISTINCT -> TaPaK тапок сказал: "подозреваю что так :)", т.е. может быть и не так.

У ТС вообще нет понятия о UNION.
12 янв 17, 16:33    [20099242]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Wlr-l,

чукча не читатель:
автор
пользовать UNION ALL и например DISTINCT
годнее
чем UNION

за идиотский лексикон, это уже к тс
12 янв 17, 16:39    [20099273]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
o-o
Guest
Wlr-l
o-o,
UNION ALL + DISTINCT -> TaPaK тапок сказал: "подозреваю что так :)", т.е. может быть и не так.
У ТС вообще нет понятия о UNION.

а я тоже именно так подозреваю.
при всей моей неуемной фантазии,
никаких других трактовок его вопроса в голову не лезет.

ну и лень уже в планы тыкать.
какие нафиг нужны объемы,
когда даже для пустых таблиц в обоих планах будет сортировка каждой входящей в юнион таблицы.
12 янв 17, 16:46    [20099314]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Wlr-l
Member

Откуда:
Сообщений: 522
o-o,

Подозревать кого-то в чем-либо не означает, что он таким и есть.

В первом же ответе ТС посоветовали прочитать, чем отличается UNION от UNION ALL.

Если окинуть взглядом всю переписку, то можно заметить, что ТС прислушался к этому совету.

А его все еще подозревают!
12 янв 17, 16:57    [20099367]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
o-o
Guest
Wlr-l
o-o,

Подозревать кого-то в чем-либо не означает, что он таким и есть.

В первом же ответе ТС посоветовали прочитать, чем отличается UNION от UNION ALL.

Если окинуть взглядом всю переписку, то можно заметить, что ТС прислушался к этому совету.

А его все еще подозревают!

ага, углубился в чтение
тем не менее, правильный ответ "он таким и есть"
12 янв 17, 17:27    [20099512]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Wlr-l
Member

Откуда:
Сообщений: 522
o-o,

Как связано
SELECT DISTINCT a
FROM
(
  SELECT a FROM t1
  UNION ALL
  SELECT a FROM t2
)

с высказыванием "Сортировка будет в любом случае, если нет unuque ограничения"?
12 янв 17, 17:55    [20099613]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Wlr-l
o-o,

Как связано
SELECT DISTINCT a
FROM
(
  SELECT a FROM t1
  UNION ALL
  SELECT a FROM t2
)

с высказыванием "Сортировка будет в любом случае, если нет unuque ограничения"?

напрямую
12 янв 17, 17:59    [20099634]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
invm
Member

Откуда: Москва
Сообщений: 9412
Владислав Колосов
Сортировка будет в любом случае
Будет группировка, и то не всегда.
А что выгоднее применять для группировки - сортировку или хеширование - оптимизатор сам разберется.
12 янв 17, 18:05    [20099663]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Владислав Колосов
Member

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

Группировка также требует сортировку, т.е. шаг сортировки будет иметь место. Об этом речь.
12 янв 17, 18:41    [20099819]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
invm,

Группировка также требует сортировку, т.е. шаг сортировки будет иметь место. Об этом речь.

не всегда

К сообщению приложен файл. Размер - 51Kb
12 янв 17, 18:46    [20099843]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
o-o
Guest
TaPaK
Владислав Колосов
invm,

Группировка также требует сортировку, т.е. шаг сортировки будет иметь место. Об этом речь.

не всегда

на картинке оба скана в порядке индекса, т.е. ordered.
иначе бы был сорт перед merge.
зачем бы сортировать отсортированное?
12 янв 17, 19:05    [20099907]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
invm
Member

Откуда: Москва
Сообщений: 9412
Владислав Колосов
Группировка также требует сортировку, т.е. шаг сортировки будет иметь место.
Еще раз: не обязательно.
declare @t table (id int identity, g int, primary key (g, id));

set statistics xml on;
select g, max(id) from @t group by g;
set statistics xml off;
12 янв 17, 19:27    [20099985]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Gric_Art
Member

Откуда:
Сообщений: 48
UNION ALL работает по факту на порядок быстрее, чем UNION.
12 янв 17, 21:04    [20100233]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Gric_Art
UNION ALL работает по факту на порядок быстрее, чем UNION.
Ага, а select 1 до 100500 раз быстрее может работать. Это если пофиг на результат.
12 янв 17, 21:09    [20100241]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
invm
Member

Откуда: Москва
Сообщений: 9412
Gric_Art
UNION ALL работает по факту на порядок быстрее, чем UNION.
По факту их вообще нельзя сравнивать.
12 янв 17, 21:25    [20100292]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3761
waszkiewicz
Возможно, из пальцев высосано, но есть такое мнение, что пользовать UNION ALL и например DISTINCT годнее, чем UNION
Это так? Ибо на больших наборах данных проверить нет возможности, а на малых нет толку


по "пальцам" - сейчас такое время, могли обмануть
12 янв 17, 22:14    [20100441]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Idol_111
Member

Откуда:
Сообщений: 605
o-o
SELECT DISTINCT a
FROM
(
  SELECT a FROM t1
  UNION ALL
  SELECT a FROM t2
)

vs
  SELECT a FROM t1
  UNION 
  SELECT a FROM t2

разницы не будет.
Пытался пару лет назад одну Вьюшку оптимизировать подобным образом.
13 янв 17, 00:37    [20100769]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Владислав Колосов
Member

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

автор
Еще раз: не обязательно.


А почему Вы выкинули из моего сообщения ту часть, в которой я писал об исключении при наличии уникального ограничения ( первичный ключ также накладывает ограничение уникальности)? И приводите пример как раз по моей второй части сообщения, ссылаясь на первую? :)
13 янв 17, 10:29    [20101533]     Ответить | Цитировать Сообщить модератору
 Re: UNION vs UNION ALL  [new]
Владислав Колосов
Member

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

автор
разницы не будет


Именно об этом и идет речь.
13 янв 17, 10:30    [20101539]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить