Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

UNION vs DISTINCT nelle prestazioni

Dipende dalla query:senza conoscere la complessità delle query A, B o C non è possibile rispondere, quindi la soluzione migliore è profilare e quindi giudicare in base a quello.

Tuttavia... Probabilmente andrei con un sindacato a prescindere:un tavolo temporaneo può essere piuttosto costoso, soprattutto quando diventa grande. Ricorda che con una tabella temporanea stai creando esplicitamente operazioni extra e quindi più i/o per stressare il sottosistema del disco. Se riesci a selezionare senza ricorrere a una tabella temporanea, sarà sempre (probabilmente) più veloce.

Ci sarà sicuramente un'eccezione (o sette) a questa regola, quindi è meglio profilare un set di dati realisticamente grande per assicurarti di ottenere alcune cifre solide su cui prendere una decisione adeguata.