J'ai une requête relativement simple reliant deux tables. Le critère "Où" peut être exprimé soit dans les critères de jointure, soit dans une clause where. Je me demande lequel est le plus efficace.Critères de filtre SQL dans les critères de jointure ou clause where plus efficace
La requête consiste à trouver les ventes maximales pour un vendeur depuis le début jusqu'à leur promotion.
Case 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
Case 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
Remarque Cas 1 manque une clause where tout à fait
SGBDR est Sql Server 2005
EDIT Si la seconde morceau de le critère de jointure ou la clause where était sales.salesdate < une date fixe, donc ce n'est pas vraiment un critère de jonction des deux tables qui change la réponse.
Qu'y a-t-il de mal à tester le temps que prennent ces requêtes? – ChristopheD
Parce que la requête est mise en cache mais merci, vraiment – Gratzy
@Gratzy - DBCC FREEPROCCACHE http://msdn.microsoft.com/en-us/library/ms174283.aspx –