Разница между UNION и UNION ALL с точки зрения оптимизации
Постановка задачи в посте вторника.
Начнем с простого. Что это за операции?
▫️UNION - объединяет два множества, оставляет только уникальные значения.
▫️UNION ALL - объединяет два множества, значения не уникальны, т.е. могут быть повторы.
Пока разница очевидна.
Пример:
За счет дополнительного шага сортировки. И это прекрасно видно в плане запроса. После шага UNION-ALL выполняется SORT.
Я всегда говорю, если вам сортировка не требуется, то не надо её делать. Избавляемся от лишних сортировок.
⚠️ Возьмите за правило, использовать по умолчанию операцию UNION ALL, которая не выполняет сортировку. Только, если по бизнес-процессу требуется уникальность значений используйте UNION. Помогите СУБД избавиться от лишней работы 😉
#оптимизация #union #unionall
Постановка задачи в посте вторника.
Начнем с простого. Что это за операции?
▫️UNION - объединяет два множества, оставляет только уникальные значения.
▫️UNION ALL - объединяет два множества, значения не уникальны, т.е. могут быть повторы.
Пока разница очевидна.
Пример:
select some_col1 from tab1Давайте подумаем, а в чем различие операций на уровне выполнения. За счет чего достигается уникальность отдаваемых значений в UNION?
union
select some_col1 from tab2;
За счет дополнительного шага сортировки. И это прекрасно видно в плане запроса. После шага UNION-ALL выполняется SORT.
Я всегда говорю, если вам сортировка не требуется, то не надо её делать. Избавляемся от лишних сортировок.
⚠️ Возьмите за правило, использовать по умолчанию операцию UNION ALL, которая не выполняет сортировку. Только, если по бизнес-процессу требуется уникальность значений используйте UNION. Помогите СУБД избавиться от лишней работы 😉
#оптимизация #union #unionall