Beh, forse sono troppo vecchia scuola e mi piacerebbe capire quanto segue.Perché un'unione è più veloce di un gruppo di
interrogazione 1.
select count(*), gender from customer
group by gender
interrogazione 2.
select count(*), 'M' from customer
where gender ='M'
union
select count(*), 'F' from customer
where gender ='F'
la prima domanda è più semplice, ma per qualche ragione nel profiler, quando eseguo entrambi allo stesso tempo, si dice che la query 2 utilizza il 39% delle volte e la query 1, 61%.
Vorrei capire il motivo, forse devo riscrivere tutte le mie domande.
Un'ipotesi: la seconda query non ha in realtà alcuna aggregazione e non viene mantenuto nessuno stato per calcolare i conteggi (è solo il numero di restituzione delle righe corrispondenti per 'count (*)') – lanzz
cosa intendi 'a nello stesso tempo? – Sebas
Suppongo che tu abbia solo 2 sessi e che ognuno abbia un genere assegnato piuttosto che alcuni 'NULL'? Inoltre, cosa succede se provi 'UNION ALL'? Questo migliora ancora di più il secondo? Anche cosa RDBMS e come sono i piani di esecuzione? Anche i costi relativi nei piani di esecuzione di SQL Server non riflettono necessariamente le prestazioni reali se questo è ciò che si utilizza per confrontare le due query. –