Избавление от UNION
Наиболее простым примером использования UNION, от которого можно избавиться, является цепочка предложений UNION, основанных на одной и той же базовой таблице. Примеры исходного запроса и преобразованного приведены в листингах 8,9.
SELECT ProductID, ProductName, UnitPrice FROM Products WHERE ProductName LIKE 'A%'
UNION
SELECT ProductID, ProductName, UnitPrice FROM Products WHERE UnitPrice <= 40
Листинг 8.Запрос с UNION на основе одной базовой таблице
SELECT ProductID, ProductName, UnitPrice FROM Products WHERE ProductName LIKE 'A%' OR UnitPrice <= 40
Листинг 9. Модифицированный запрос (замена UNION на OR)
Очевидно, что модифицированный запрос имеет более простой дизайн. Для наглядной иллюстрации критичности использования UNION, ниже приведены планы выполнения этих запросов.
![](image/5.png)
Рис. 5. План выполнения запроса после замены UNION на OR
В некоторых ситуациях в использовании UNION нет необходимости и достаточно более производительного предложения UNION ALL (при его выполнении не происходит объединения повторяющихся строк).