Sjednocení bude rychlejší, protože jednoduše předá první příkaz SELECT a poté analyzuje druhý příkaz SELECT a přidá výsledky na konec výstupní tabulky.
Spojení projde každý řádek obou tabulek, najde shody v druhé tabulce, a proto vyžaduje mnohem více zpracování kvůli hledání shodných řádků pro každý řádek.
UPRAVIT
Spojením myslím Union All, protože se to zdálo dostatečné pro to, čeho jste se snažili dosáhnout. I když normální Union je obecně rychlejší než Join.
EDITACE 2 (Odpověď na komentář @seebiscuit )
Nesouhlasím s ním. Technicky vzato bez ohledu na to, jak dobré je vaše spojení, je „JOIN“ stále dražší než čisté zřetězení. Udělal jsem blogový příspěvek, abych to dokázal na svém blogu codePERF[tečka]net . Prakticky řečeno, slouží 2 zcela odlišným účelům a je důležitější zajistit, aby vaše indexování bylo správné a pomocí správného nástroje pro danou úlohu.
Technicky si myslím, že to lze shrnout pomocí následujících 2 plánů provádění převzatých z mého příspěvku na blogu:
UNION ALL
Prováděcí plán
JOIN
Prováděcí plán
Praktické výsledky
Prakticky řečeno, rozdíl ve vyhledávání seskupených indexů je zanedbatelný: