Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

5 лет назад
Открыть в
Разница между UNION и UNION ALL с точки зрения оптимизации Постановка задачи в посте вторника. Начнем с простого. Что это за операции? ▫️UNION - объединяет два множества, оставляет только уникальные значения. ▫️UNION ALL - объединяет два множества, значения не уникальны, т.е. могут быть повторы. Пока разница очевидна. Пример:
select some_col1 from tab1
union
select some_col1 from tab2;

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