В чем разница между UNION и UNION ALL?

Вы можете использовать функциональность, называемую Export Data-Tier Application, которая генерирует файл .bacpac, содержащий схему и данные базы данных.

На целевом сервере вы можете использовать параметр «Импортировать данные-уровень», который создает и заполняет новые база данных из предварительно созданного файла .bacpac

Если вы хотите просто передать схему базы данных, вы можете использовать Extract Data-Tier Application для создания файла и Deploy Application-Tier Application для развертывания созданной схемы базы данных.

Я пробовал этот процесс в разных версиях SQL Server с SQL 2014 на SQL 2012 и с SQL 2014 на SQL 2008R2 и работал хорошо.

1293
задан DineshDB 26 March 2018 в 06:50
поделиться

7 ответов

UNION удаляет дублирующиеся записи (где все столбцы в результатах являются тем же), UNION ALL не делает.

существует хит производительности при использовании UNION вместо UNION ALL, так как сервер базы данных должен сделать дополнительную работу для удаления дублирующихся строк, но обычно Вы не хотите дубликаты (особенно при разработке отчетов).

Пример ОБЪЕДИНЕНИЯ:

SELECT 'foo' AS bar UNION SELECT 'foo' AS bar

Результат:

+-----+
| bar |
+-----+
| foo |
+-----+
1 row in set (0.00 sec)

ОБЪЕДИНЕНИЕ ВЕСЬ пример:

SELECT 'foo' AS bar UNION ALL SELECT 'foo' AS bar

Результат:

+-----+
| bar |
+-----+
| foo |
| foo |
+-----+
2 rows in set (0.00 sec)
1599
ответ дан 5 revs, 4 users 79% 26 March 2018 в 06:50
поделиться

В Oracle: ОБЪЕДИНЕНИЕ не поддерживает BLOB (или CLOB) типы столбца, ОБЪЕДИНЕНИЕ, которое ВСЕ делает.

29
ответ дан Michiel Overeem 26 March 2018 в 06:50
поделиться

Не уверенный, что это имеет значение, какая база данных

UNION и UNION ALL должна работать над всеми SQL Server.

необходимо избежать ненужных UNION с, они - огромная утечка производительности. Как показывает опыт, используйте UNION ALL, если Вы не уверены, чтобы использовать.

8
ответ дан shA.t 26 March 2018 в 06:50
поделиться

основное различие между ОБЪЕДИНЕНИЕМ и ОБЪЕДИНЕНИЕМ ВСЕ - операция объединения, устраняет дублированные строки из набора результатов, но объединения все возвраты все строки после присоединения.

от http://zengin.wordpress.com/2007/07/31/union-vs-union-all/

21
ответ дан George Mauer 26 March 2018 в 06:50
поделиться

UNION удаляет дубликаты, тогда как UNION ALL не делает.

для удаления дубликатов, набор результатов должен быть отсортирован, и это может оказывать влияние на производительность ОБЪЕДИНЕНИЯ, в зависимости от объема данных, отсортированных, и настройки различных параметров RDBMS (Для Oracle PGA_AGGREGATE_TARGET с WORKAREA_SIZE_POLICY=AUTO или SORT_AREA_SIZE и SOR_AREA_RETAINED_SIZE если WORKAREA_SIZE_POLICY=MANUAL).

В основном, вид быстрее, если он может быть выполнен в памяти, но тот же протест об объеме данных применяется.

, Конечно, при необходимости в данных, возвращенных без дубликатов тогда Вы должны ОБЪЕДИНЕНИЕ использования, в зависимости от источника Ваших данных.

я прокомментировал бы первое сообщение для квалификации, "намного меньше производительного" комментария, но имейте недостаточную репутацию (точки), чтобы сделать так.

45
ответ дан DhruvJoshi 26 March 2018 в 06:50
поделиться

Как привычка, Всегда ОБЪЕДИНЕНИЕ использования ВЕСЬ . Используйте только ОБЪЕДИНЕНИЕ в особых случаях, когда необходимо устранить дубликаты, которые могут быть чрезвычайно грязными, и можно считать все о в других комментариях здесь.

0
ответ дан Clark Vera 14 September 2019 в 16:30
поделиться
  • 1
    Просто прокомментируйте, что, функция mysqli_set_charset("utf8"), нуждается в двух параметрах, соединении и наборе символов, таким образом, это заканчивается как mysqli_set_charset($conn, "utf8"). – Arnau Lacambra 14 April 2014 в 09:37

объединение используется для выбора различных значений из двух таблиц. где как union all используется для выбора всех значений, включая дубликаты из таблиц

6
ответ дан 19 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: