De UNION
operator vereist dat dubbele tupels (rijen) uit de resultaatset worden verwijderd voordat rijen worden geretourneerd. Dat is in feite een SORT UNIEKE operatie. Dat is relatief goedkoop voor kleine resultaatsets, maar voor grote sets kan het veel tijd kosten op de server (d.w.z. lang duren.)
In theorie, het combineren van de zoekopdrachten met een UNION ALL
operator in plaats van een UNION
operator zou het snelst zijn, omdat het (n -1) retourvluchten naar de database, versus het afzonderlijk uitvoeren van query's. Maar voor grote waarden van n , je loopt tegen praktische limieten aan wat betreft de grootte van de SQL-tekst (max. pakketgrootte).
Gezien de keuze tussen UNION
operator en afzonderlijke zoekopdrachten, voor een grote resultatenset zullen de afzonderlijke zoekopdrachten minder resource-intensief zijn aan de serverkant.
Kortom, het is echt een afweging tussen het zware werk voor elke vraag en het zware werk van een UNIEKE SORTERING-operatie.