Il UNION
l'operatore richiede che le tuple duplicate (righe) vengano rimosse dal set di risultati prima che vengano restituite le righe. Questa è effettivamente un'operazione SORT UNIQUE. È relativamente poco costoso per set di risultati di piccole dimensioni, ma per set di grandi dimensioni può richiedere molte risorse per il tempo del server (ovvero richiedere molto tempo).
In teoria, combinando le query con un UNION ALL
operatore anziché un UNION
sarebbe il più veloce, poiché eliminerebbe (n -1) viaggi di andata e ritorno al database, rispetto all'esecuzione di query separatamente. Ma per valori elevati di n , ti imbatterai in limiti pratici sulla dimensione del testo SQL (dimensione massima del pacchetto).
Data la scelta tra UNION
operatore e query separate, per un set di risultati di grandi dimensioni, le query separate richiederanno meno risorse sul lato server.
In breve, è davvero un compromesso tra il sollevamento di carichi pesanti per ogni query e il sollevamento di carichi pesanti di un'operazione SORT UNIQUE.