Toward a more perfect UNION in T-SQL
When you're bringing together results from more than one query, try to use the UNION ALL statement instead of the UNION statement whenever you can.
UNION ALL is much faster because it doesn't have to search for duplicate rows. If you queries are always going to combine results those are distict, you do not have to check for the duplicates and therefore, using UNION ALL will speed up the results.
UNION does search for duplicates, even if there aren't any. As a result, UNION ALL is much more efficient for, generally, the same results.