Выступление Союза против Союза все
-
26-09-2019 - |
Вопрос
Я должен запустить оператор Select на нескольких таблицах. Я уверен, что таблицы возвращают разные записи. Я все равно использую Union все.
Лучше использовать Union или Union все в условиях производительности, когда я уверен, что таблицы возвращают разные записи?
Решение
Союз все будет работать лучше, чем союз, когда вы не обеспокоены устранением повторяющихся записей, потому что вы избегаете дорогих отчетливый сортировка операция. Видеть: SQL Server - разница между Союзом против союза все оптимальное сравнение производительности
Другие советы
Союз все всегда быстрее, потому что профсоюз исключают дублированные записи
Союз осуществляет внутренние запросы. 1SELECT
который вернет набор данных 2.DISTINCT
. Отказ Любой, кто изучал внутренние базы данных, может легко понять, что DISTINCT
пункт чрезвычайно дорого с точки зрения обработки.
Если вы уверены уверены, что полученный набор данных не должен иметь уникальные ряды, то мы можем пропустить UNION
и использовать UNION ALL
вместо.
UNION ALL
будет такой же, как UNION
за исключением того, что это не огонь DISTINCT
внутренне расстраивая нас дорогостоящие операции
Лучше использовать Union все, когда вы знаете, что вы хотите, чтобы все результаты строки, независимо от того, знаете ли вы, они будут отличаться или нет. Союз без «всех» будет всегда Выполните «отдельную проверку», независимо от того, какие данные на самом деле есть.
Почему союз все быстрее? Потому что союз должен сделать своего рода, чтобы удалить дубликаты. Если вам не нужно удалять дубликаты, то объединение все - это лучший вариант, однако союз имеет целью и должен использоваться при необходимости.