sql >> Database >  >> RDS >> Sqlserver

UNION vs DISTINCT in prestaties

Het hangt af van de vraag -- zonder de complexiteit van de vragen A, B of C te kennen, is het niet een die kan worden beantwoord, dus je kunt het beste een profiel maken en vervolgens op basis daarvan oordelen.

Echter... Ik zou waarschijnlijk toch voor een vakbond gaan:een tijdelijke tafel kan behoorlijk duur zijn, vooral als hij groot wordt. Onthoud dat je met een tijdelijke tabel expliciet extra bewerkingen maakt en dus meer i/o om het schijfsubsysteem te belasten. Als je een selectie kunt doen zonder een tijdelijke tabel te gebruiken, gaat dat altijd (waarschijnlijk) sneller.

Er is vast een uitzondering (of zeven) op deze regel, dus u kunt beter profileren tegen een realistisch grote dataset om er zeker van te zijn dat u solide cijfers krijgt om een ​​geschikte beslissing over te nemen.



  1. T-SQL:alle dubbele rijen verwijderen, maar er één behouden

  2. Hoe Gnatcoll Postgres op Linux Centos 7 te installeren

  3. Hoe leidende witruimte in SQL Server te verwijderen - LTRIM()

  4. Hoe de waitevent Geschiedenis van de Oracle-sessie te vinden