Ho una query relativamente semplice che unisce due tabelle. I criteri "Dove" possono essere espressi nei criteri di join o come clausola where. Mi chiedo quale sia più efficiente.Criteri di filtro SQL nei criteri di join o clausola where che è più efficiente
Query è trovare le vendite massime per un venditore dall'inizio fino a quando non sono stati promossi.
Caso 1
select salesman.salesmanid, max(sales.quantity)
from salesman
inner join sales on salesman.salesmanid =sales.salesmanid
and sales.salesdate < salesman.promotiondate
group by salesman.salesmanid
Caso 2
select salesman.salesmanid, max(sales.quantity)
from salesman
inner join sales on salesman.salesmanid =sales.salesmanid
where sales.salesdate < salesman.promotiondate
group by salesman.salesmanid
Nota Caso 1 manca una clausola in cui tutto
RDBMS è SQL Server 2005
EDIT Se la seconda pezzo di il criterio di join o la clausola where era sales.salesdate < alcune date fisse quindi non è in realtà alcun criterio di unione delle due tabelle che modifica la risposta.
Cosa c'è di sbagliato nel testare effettivamente il tempo impiegato da queste query? – ChristopheD
Poiché la query viene memorizzata nella cache ma grazie, davvero – Gratzy
@Gratzy - DBCC FREEPROCCACHE http://msdn.microsoft.com/en-us/library/ms174283.aspx –