Rule Definition
In SQL the UNION operator combines the results of two SQL queries into a single table of all matching rows. The two queries must have matching fields and data types in order to join them.
Any duplicate records are automatically removed unless UNION ALL is used.
The problem is that MOST of the time it is unnecessary to remove duplicate as there are none and doing the search for duplicate rows can be very costly.
Remediation
Add the ALL after the union keyword (ensure that this does not change the returned data)/
Violation Code Sample
select C1a, C2a
from Table1
union <- Failure here
select C1b, C2b
from Table2
=> The database server will read the values, sort them and eliminate duplicates. This is costly and likely to be useless.
Fixed Code Sample
select C1a, C2a
from Table1
union ALL <- Correction here
select C1b, C2b
from Table2
Related Technologies
.Net
Cobol
PL/SQL
JEE
Microsoft T-SQL
Sybase T-SQL
Technical Criterion
Efficiency - SQL and Data Handling Performance
About CAST Appmarq
CAST Appmarq is by far the biggest repository of data about real IT systems. It's built on thousands of analyzed applications, made of 35 different technologies, by over 300 business organizations across major verticals. It provides IT Leaders with factual key analytics to let them know if their applications are on track.