Ответ 1
UNION ALL будет работать лучше, чем UNION, если вас не волнует устранение дубликатов записей, потому что вы избегаете дорогостоящей операции SQL SERVER - Разница между сопоставлением производительности между EU и EU All-Optimal
Мне нужно запустить инструкцию select в нескольких таблицах. Я уверен, что таблицы возвращают разные записи. Я все равно использую UNION ALL.
Лучше ли использовать UNION или UNION ALL в условиях производительности, когда я уверен, что таблицы возвращают разные записи?
UNION ALL будет работать лучше, чем UNION, если вас не волнует устранение дубликатов записей, потому что вы избегаете дорогостоящей операции SQL SERVER - Разница между сопоставлением производительности между EU и EU All-Optimal
UNION ALL всегда быстрее, потому что UNION исключает дублированные записи
UNION реализует внутренне два запроса.
1. SELECT
, который вернет набор данных
2. DISTINCT
.
Любой, кто изучил базы данных базы данных, может легко понять, что предложение DISTINCT
является чрезвычайно дорогостоящим с точки зрения обработки.
Если вы уверены, что результирующий набор данных не должен иметь уникальных строк, мы можем пропустить UNION
и вместо этого использовать UNION ALL
.
UNION ALL
будет таким же, как UNION
, за исключением того, что он не запускает DISTINCT
внутренне экономящие нас дорогостоящие операции
Лучше использовать UNION ALL, когда вы знаете, что хотите все строки результатов, независимо от того, знаете ли вы, что они будут отличаться или нет. UNION без "all" всегда будет выполнять "отличную проверку", независимо от того, что на самом деле есть.
Почему UNION ALL быстрее? Потому что UNION должен сделать вид, чтобы удалить дубликаты. Если вам не нужно удалять дубликаты, тогда UNION ALL - лучший вариант, однако UNION имеет свою цель и должен использоваться, когда это необходимо.