SQL: curiosità sul GROUP BY e sul DISTINCT
Studiando i piani di esecuzione di alcune query mi sono imbattuto in un GROUP BY senza molto senso, simile a questo:
SELECT IDPRODOTTO
FROM ORDINI2
GROUP BY IDPRODOTTO
Dico senza molto senso perché in realtà equivale a
SELECT DISTINCT(IDPRODOTTO)
FROM ORDINI2
SQLServer però non la manda a dire, e sa che le due query si equivalgono, ed infatti le risolve alla stessa maniera:
Ovvero utilizzando un “Distinct Sort” per entrambi.
Da notare, che nel momento in cui la tabella arriva a contenere una grande mole di dati, SQLServer cambia
strategia, e comincia ad utilizzare un algoritmo ‘Hash Match’:
Leave a Reply