Unionen kommer att gå snabbare, eftersom den helt enkelt skickar den första SELECT-satsen och sedan analyserar den andra SELECT-satsen och lägger till resultaten i slutet av utdatatabellen.
Join kommer att gå igenom varje rad i båda tabellerna, och hitta matchningar i den andra tabellen behöver därför mycket mer bearbetning på grund av att man söker efter matchande rader för varje rad.
REDIGERA
Med Union menar jag Union All eftersom det verkade tillräckligt för det du försökte uppnå. Även om en normal Union i allmänhet är snabbare än Gå med.
EDIT 2 (Svara på @seebiscuits kommentar)
Jag håller inte med honom. Tekniskt sett, oavsett hur bra din join är, är en "JOIN" fortfarande dyrare än en ren sammankoppling. Jag gjorde ett blogginlägg för att bevisa det på min blogg codePERF[dot]net . I praktiken tjänar de två helt olika syften och det är viktigare att se till att din indexering är rätt och att använda rätt verktyg för jobbet.
Tekniskt sett tror jag att det kan summeras med hjälp av följande två genomförandeplaner hämtade från mitt blogginlägg:
UNION ALL
Utförandeplan
JOIN
Utförandeplan
Praktiska resultat
I praktiken är skillnaden på en klustrad indexuppslagning försumbar: